【问题标题】:Docker & PM2: String based CMD with environment variablesDocker & PM2: 带有环境变量的基于字符串的 CMD
【发布时间】:2017-01-23 09:52:51
【问题描述】:

我目前在 Docker 中使用CMDshell-form 来启动我的节点应用程序:

CMD /usr/src/app/node_modules/.bin/trifid --config $TRIFID_CONFIG

环境变量TRIFID_CONFIGDockerfile中设置为默认值:

ENV TRIFID_CONFIG config.customer.json

这使得为开发环境传递另一个配置文件变得容易。

现在我尝试将其切换到PM2 以进行生产。然而,看起来所有 PM2 样本都使用“exec”形式,据我所知,它不会评估 ENV-vars。我用 PM2 尝试了 shell-form:

CMD pm2-docker /usr/src/app/node_modules/trifid/server.js --config $TRIFID_CONFIG

但看起来变量没有像这样评估,它在执行时失败回到默认值。

在 Docker 映像中使用 PM2 处理此问题的正确方法是什么?

【问题讨论】:

标签: node.js docker dockerfile pm2


【解决方案1】:

我在Github上进行了讨论,同时想通了:

CMD pm2-docker /usr/src/app/node_modules/.bin/trifid -- --config $TRIFID_CONFIG

所以诀窍是在命令之后使用--,其余的将作为参数传递。如果我使用 shell 形式 env-vars 似乎确实得到了正确的评估。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-11
    • 2012-11-26
    • 2019-09-27
    • 2020-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-20
    相关资源
    最近更新 更多