2016-10-08 2 views
1

.env 파일에 내 pem 파일의 내용을 문자열로 전달하려고합니다. \n을 사용하여 ENV 변수에서 사용되는 pem 파일의 양식을 번역합니다. 그러나 문제는이 변수에서 오류가 발생하고 그것이 무엇을 의미하는지 확신 할 수 없다는 것입니다. 그러나 issue closed이 여러 행을 허용하는 이유를보고이 오류의 원인을 모르겠습니다. 여기 Foreman Multiline ENV 변수 오류

가 여기 내 터미널 명령 nf run nodemon app.js

있는 버전 1.4.1

여기

내 PEM 파일의 형식 내 .env의 파일 내에서 설정을 수 있습니다 :

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

이 오류 메시지는 :

/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) 

답변

1

나는 그렇지 않습니다. 그런 식으로 일할 수 있습니다. 노드 감독은 파일을 한 줄씩 스캔하고 키 - 값 쌍을 만들려고 시도하는 것 같아요. \ n 또는 줄을 나눌 수있는 다른 방법을 알지 못하는 것처럼 보입니다. 나는 당신이 더 많은 라인에 그것을 써야한다고 생각하지 않는다. 아마도 여러분은 다음과 같이 할 수 있습니다 :

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

그리고 작동하지 않을 수도 있습니다. 왜 파일 이름을 env에 넣지 않으시겠습니까? 뭔가 같은 :

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

내가 찾던 정확한 대답했다 :

CF_PRIVATE_KEY_FILENAME="my-file-id-rsa" 

당신은 응용 프로그램을 부팅 할 때. 제 문제를 해결해 주셔서 감사합니다. – cphill