Foreman Многострочная ошибка переменной ENV

Я пытаюсь передать содержимое моего файла pem в виде строки в моем файле .env, используя \n для перевода формы в файле pem для использования в переменной 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)

person cphill    schedule 08.10.2016    source источник


Ответы (1)


Я не думаю, что это может так работать. Похоже, что мастер узлов сканирует файл построчно и пытается создать пары ключ-значение, и кажется, что он не знает о \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);
person Stavros Zavrakas    schedule 08.10.2016
comment
это был точный ответ, который я искал. Спасибо за решение моей проблемы. - person cphill; 09.10.2016