【发布时间】:2021-03-09 12:53:39
【问题描述】:
我想创建一个 docker 容器。我已经写了一个这样的 Docker 文件
FROM node:12-buster
WORKDIR /opt/myapps/
COPY . /opt/myapps/
RUN apt update
RUN apt upgrade -y
RUN apt install git -y
RUN git config --global user.email "user@git.com"
RUN git config --global user.name "user"
RUN npm install -g pm2
RUN pm2-runtime main.js
RUN pm2 save
RUN chmod +x /opt/myapps/entrypoint.sh
EXPOSE 4001
CMD ["./entrypoint.sh"]
这是我的 entrypoint.sh
#!/bin/bash
#node thing
npm install
#npm start
pm2-runtime main.js --exp-backoff-restart-delay=100
当我进行构建时,它肯定会像这样卡在最终过程中
Step 10/14 : RUN pm2-runtime main.js
---> Running in 6061a8236379
2021-03-09T12:38:20: PM2 log: Launching in no daemon mode
2021-03-09T12:38:20: PM2 log: App [main:0] starting in -fork mode-
2021-03-09T12:38:20: PM2 log: App [main:0] online
Server started on port :4001
当它到达那里时,这个过程从未继续。有谁知道为什么会这样?我对 docker 世界很陌生
【问题讨论】:
-
你真的需要pm2吗?你能删除
COPY和EXPOSE之间的所有内容,只设置CMD ["node", "main.js"]吗? Docker 本身可以提供故障重启、日志管理等等。另见what is the point of using pm2 and docker together?
标签: node.js docker build containers pm2