【发布时间】:2017-01-23 09:52:51
【问题描述】:
我目前在 Docker 中使用CMD 的shell-form 来启动我的节点应用程序:
CMD /usr/src/app/node_modules/.bin/trifid --config $TRIFID_CONFIG
环境变量TRIFID_CONFIG在Dockerfile中设置为默认值:
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 处理此问题的正确方法是什么?
【问题讨论】:
-
你最好使用进程文件来配置这个pm2.keymetrics.io/docs/usage/application-declaration
-
ok 会在我开始工作时检查并调整我的答案
标签: node.js docker dockerfile pm2