2016-10-08 2 views
1

Я пытаюсь передать содержимое моего файла pem в виде строки в файле .env, используя \n, чтобы перевести форму в файл pem, который будет использоваться в переменной ENV. Проблема, однако, в том, что я получаю ошибку от этой переменной, и я не уверен, что это значит, но я видел, где был issue closed, позволяющий многострочный, поэтому я не уверен, почему эта ошибка существует.Foreman Multiline ENV Variable Error

Вот мой терминал команды 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

Я не thi nk, что он может работать так. Кажется, что ведущий узла просматривает файл по строкам, и он пытается создать пары ключ-значение и, похоже, не знает о \ n или других методах, которые могут разделить строку. Я не думаю, что вы должны надеть его на несколько строк. Возможно, вы можете сделать что-то подобное:

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

и вполне возможно, что это не сработает. Почему бы вам не поставить только имя файла в env vars? Что-то вроде:

CF_PRIVATE_KEY_FILENAME="my-file-id-rsa" 

и при загрузке приложения:

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

, который был точный ответ, который я искал. Спасибо, что решили мою проблему. – cphill

Смежные вопросы