Foreman 多行 ENV 变量错误

Foreman Multiline ENV Variable Error

我正在尝试将我的 pem 文件的内容作为字符串传递到我的 .env 文件中,使用 \n 将 pem 文件中的格式转换为在 ENV 变量中使用。然而,问题是我从这个变量中得到一个错误,我不确定它是什么意思,但我看到哪里有一个 issue closed 允许多行,所以我不确定为什么会出现这个错误存在。

这是我的终端命令nf run nodemon app.js

这是版本1.4.1

这是我的 .env 文件中设置的 pem 文件的格式:

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)

我不认为它可以那样工作。似乎节点工头逐行扫描文件并且它正在尝试创建键值对并且似乎不知道 \n 或其他可以拆分行的方法。不过,我认为您不必将它放在更多行上。也许你可以这样做:

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

而且很有可能行不通。你为什么不把文件名放在环境变量中?类似于:

CF_PRIVATE_KEY_FILENAME="my-file-id-rsa"

当您启动应用程序时:

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