Node.js 在特定环境下运行PM2 Docker

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": {

我一直在尝试将环境传递给我的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": {
    "NODE_ENV": "development"
  },
  "env_production" : {
    "NODE_ENV": "production"
  }
}
而且我无法正确设置环境,因此当我访问
process.env.NODE\u env
时,总是返回“无”

我已尝试将CMD更改为:

CMD[“pm2运行时”、“开始”、“pm2.json”、“--env”、“生产”]
没有乐趣

我还尝试在dockerfile中设置环境变量,如下所示:

ENV
NODE\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”]