Docker&PM2:基于string的CMD与环境variables

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

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

env-var TRIFID_CONFIG中设置为默认值:

 ENV TRIFID_CONFIG config.customer.json 

这样可以很容易地为dev-environments传递另一个configuration文件。

现在我尝试将其切换到PM2进行生产。 然而,看起来所有的PM2样品都使用“exec”forms,而我所理解的并不是评估ENV-vars。 我尝试了PM2的shellforms:

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

但它看起来像variables不像这样计算,它会在执行时回到默认值。

在Docker镜像里面用PM2处理这个问题的正确方法是什么?

我在Github上进行了一次讨论,并同时发现:

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

所以诀窍就是使用--在命令之后,其余的将作为parameter passing。 如果我使用shell的forms,env-vars似乎得到正确的评估。