我目前在Docker中使用shell - CMD
形式启动我的节点应用:
CMD /usr/src/app/node_modules/.bin/trifid --config $TRIFID_CONFIG
env-var TRIFID_CONFIG
设置为Dockerfile
中的默认值:
ENV TRIFID_CONFIG config.customer.json
这样可以很容易地为dev-environment传递另一个配置文件。
现在我尝试将其切换为PM2进行制作。然而,看起来所有PM2样本都使用“exec”形式,根据我的理解,它不会评估ENV-vars。我用PM2尝试了shell形式:
CMD pm2-docker /usr/src/app/node_modules/trifid/server.js --config $TRIFID_CONFIG
但看起来变量没有像这样评估,它在执行时失败回到默认状态。
在Docker镜像中使用PM2处理此问题的正确方法是什么?
答案 0 :(得分:0)
我对Github进行了讨论,同时也弄明白了:
CMD pm2-docker /usr/src/app/node_modules/.bin/trifid -- --config $TRIFID_CONFIG
所以诀窍是在命令后使用--
,其余的将作为参数传递。如果我使用shell形式env-vars,似乎可以正确评估。