2016-10-08 3 views
1

Ich versuche, den Inhalt meiner PEM-Datei als Zeichenfolge in meiner .env Datei mit \n übergeben, um das Formular in der PEM-Datei in einer ENV-Variable zu verwenden. Das Problem ist jedoch, dass ich einen Fehler von dieser Variable bekomme und ich bin mir nicht sicher, was es bedeutet, aber ich sah, wo es eine issue closed gibt, die multiline erlaubt, also bin ich nicht sicher, warum dieser Fehler existiert.Foreman Multiline ENV Variablenfehler

Hier mein Terminal-Befehl ist nf run nodemon app.js

Dies ist die Version 1.4.1

Hier wird das Format meiner pem-Datei in meiner .env-Datei festgelegt:

CF_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----\n 
MIIEpAIBAAKCAQEAm7NA5731034RiKsEkuBTrkoBidwFD7hsdfaiohdsfahsdfL99Iw5R4uTA\n 
jpPJTOUHTJNMSNF472h42ofnlNflnriNBTPOHNJFRPNSRPFNSRpfPRNFORNFPRSNFpSNFFPNf\n 
-----END RSA PRIVATE KEY-----" 

Dies ist die Fehlermeldung :

/Users/user/.nvm/versions/node/v4.3.2/lib/node_modules/foreman/lib/envs.js:38 
     case '"': return /^"([^"]*)"/.exec(val)[1]; 
              ^

TypeError: Cannot read property '1' of null 
    at parseValue (/Users/user/.nvm/versions/node/v4.3.2/lib/node_modules/foreman/lib/envs.js:38:46) 

Antwort

1

ich thi nicht nk, dass es so funktionieren kann. Es scheint, dass Knoten-Vorarbeiter die Datei Zeile für Zeile durchsucht und versucht, Schlüssel-Wert-Paare zu erstellen, und scheint, dass \ n oder andere Methoden nicht bekannt sind, die die Zeile aufteilen können. Ich denke nicht, dass Sie es auf mehr Linien setzen müssen, obwohl. Vielleicht können Sie so etwas tun:

CF_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEAm7NA57......\n...." 

und es ist durchaus möglich, dass nicht funktionieren. Warum legst du nicht einfach den Dateinamen in den env vars? Etwas wie:

CF_PRIVATE_KEY_FILENAME="my-file-id-rsa" 

und wenn Sie die Anwendung starten:

var id_rsa_contents = fs.readFileSync(__dirname + proces.env.CF_PRIVATE_KEY_FILENAME); 
+0

, die die genaue Antwort war ich suchte. Danke, dass du mein Problem gelöst hast. – cphill