Node.js 在特定环境下运行PM2 Docker
我一直在尝试将环境传递给我的PM2流程,以便我可以针对Node.js 在特定环境下运行PM2 Docker,node.js,docker,pm2,Node.js,Docker,Pm2,我一直在尝试将环境传递给我的PM2流程,以便我可以针对开发或生产 我的Dockerfile如下所示: FROM keymetrics/pm2:latest COPY dist dist/ COPY pm2.json . CMD ["pm2-runtime", "start", "pm2.json"] 我有以下pm2.json: { "name": "my-app", "script": "dist/server.js", "instances": "1", "env": {
开发
或生产
我的Dockerfile
如下所示:
FROM keymetrics/pm2:latest
COPY dist dist/
COPY pm2.json .
CMD ["pm2-runtime", "start", "pm2.json"]
我有以下pm2.json:
{
"name": "my-app",
"script": "dist/server.js",
"instances": "1",
"env": {
"NODE_ENV": "development"
},
"env_production" : {
"NODE_ENV": "production"
}
}
而且我无法正确设置环境,因此当我访问process.env.NODE\u env
时,总是返回“无”
我已尝试将CMD更改为:
CMD[“pm2运行时”、“开始”、“pm2.json”、“--env”、“生产”]
没有乐趣
我还尝试在dockerfile中设置环境变量,如下所示:
ENVNODE\u ENV=production
,并且也没有拾取该值
我还查看了最新的PM2文档,并将PM2.json与结构基本相同的ecosystem.config.js进行了交换,但这也不起作用
我错过了什么?我确信这一定是很容易解决的问题,但却无法让它发挥作用
谢谢
CMD[“pm2运行时”,“开始”,“ecosystem.config.js”,“--env=production”]对我有用。你试过CMD[“pm2运行时”,“pm2.json”]
了吗?刚才试过,但没有成功上面的命令启动你的节点应用程序吗?是的,应用程序是启动的,但我正在做console.log(process.env.node\u env)我一直都是“无”返回,可能CMD[“NODE_ENV=production”,“pm2 runtime”,“start”,“pm2.json”]
?