NodeJS + Forever + Docker 配置不起作用

NodeJS + Forever + Docker configuration doesn't work

我有一个关注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 not set. Defaulting to: 1000ms

warn: --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms

info: Forever processing file: /api/index.js

和 docker 容器停止。

容器工作需要做什么?

Docker 在给定命令完成后立即退出。 forever start SCRIPT 正在后台将脚本作为守护进程启动,然后退出。这就是你的容器停止的原因。

要使其正常工作,您应该使用 forever SCRIPT 在前台启动 foreverDockerfile 中的 CMD 应该是:

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