PM2 启动生态系统.config.js 在节点 js 项目的 dockerfile 中不起作用
Posted
技术标签:
【中文标题】PM2 启动生态系统.config.js 在节点 js 项目的 dockerfile 中不起作用【英文标题】:PM2 start ecosystem.config.js not working in dockerfile in node js project 【发布时间】:2022-01-22 19:44:19 【问题描述】:我有一个节点 js 项目,我正在使用 Docker 将构建更新到服务器。 我想在服务器中以集群模式实现 pm2。于是我添加了ecosystem.config.js文件,内容如下:
module.exports =
apps: [
name: "TestMyApp",
script: "app.js",
instances: "1",
exec_mode: "cluster",
autorestart: true
]
然后在我的 DockerFile 中,我添加了这样的命令
FROM node:16.9.1
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
RUN npm install pm2 -g
COPY . .
EXPOSE 8005
CMD ["pm2-runtime", "ecosystem.config.js"]
CMD ["npm", "start"]
但是当我在服务器中更新构建并运行 pm2 list 时,我的 pm2 'TestMyApp' 没有列出。
【问题讨论】:
【参考方案1】:您有多个CMD
命令。如果有多个 CMD 命令,则只有最后一个生效。因此,您的pm2-runtime
并未实际执行。
如果您已经在使用pm2-runtime
,不知道为什么需要npm start
。
【讨论】:
当我删除 npm start 并且只保留 pm2-runtime 时,我的服务器没有运行。以上是关于PM2 启动生态系统.config.js 在节点 js 项目的 dockerfile 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
在 aws elastic beanstalk 中启动节点 pm2 进程管理器的问题,npm 更新检查失败