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
在前台启动 forever
。 Dockerfile
中的 CMD
应该是:
CMD ["forever", "/api/index.js", "8080"]
我有一个关注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
在前台启动 forever
。 Dockerfile
中的 CMD
应该是:
CMD ["forever", "/api/index.js", "8080"]