我有以下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
时,我收到以下消息:
警告: - minUptime未设置。默认为:1000毫秒
警告: - 未设置--spinSleepTime。如果脚本不能保持至少1000毫秒
,您的脚本将退出info:永远处理文件:/api/index.js
和泊坞窗容器停止。
我需要对容器工作做些什么?
答案 0 :(得分:4)
一旦给定命令完成,Docker就会退出。 forever start SCRIPT
在后台启动脚本作为守护进程,然后退出。这就是你的容器停止的原因。
要使其正常工作,您应该使用forever
在前台启动forever SCRIPT
。 CMD
中的Dockerfile
应为:
CMD ["forever", "/api/index.js", "8080"]