NodeJS + Forever + Docker 配置无法正常工作

6

我有一个如下的 Dockerfile 文件:

FROM    debian:stable

RUN      apt-get update && apt-get upgrade -y
RUN      apt-get install -y curl
RUN      curl -sL https://deb.nodesource.com/setup_4.x | bash -
RUN      apt-get install -y nodejs
RUN      npm install forever -g

# App
ADD . /api
# Install app dependencies
RUN cd /api; npm install

EXPOSE  8080
CMD ["forever", "start", "/api/index.js", "8080"]

当我尝试运行docker run -p 8080:8080 my-app@1.0.0时,我收到以下消息:

warn: --minUptime未设置。 默认为:1000ms

warn: --spinSleepTime未设置。 如果脚本无法保持至少1000ms,则脚本将退出

info: Forever处理文件:/ api / index.js

然后Docker容器停止。
我需要做什么才能使容器工作?
1个回答

9
当给定的命令完成后,Docker 也就退出了。使用 forever start SCRIPT 将脚本作为守护进程在后台启动,然后退出。所以你的容器会停止。
要让它正常工作,你应该在前台使用 forever SCRIPT 启动 forever。在你的 Dockerfile 中,CMD 应该是:
CMD ["forever", "/api/index.js", "8080"]

感谢您的回复和解释。 - Niezborala

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接