Docker处理不会结束的进程?
我有一个docker容器,有多个端口上运行的服务。
当我试图通过Dockerfile中途启动其中一个进程时,会导致构build过程无限期地停止。
RUN /opt/webhook/webhook-linux-amd64/webhook -hooks /opt/webhook/hooks.json -verbose
所以程序正在运行,但它永远不会继续。
我已经尝试在命令的末尾添加&
以告诉bash并行运行下一步,但这会导致服务不能在最终映像中运行。 我也尝试将程序的输出redirect到/dev/null
。
我怎样才能解决这个问题?
你在这里有一个误解。 执行Dockerfile中的命令以创buildDocker镜像。 Dockerfile中的一种types的命令是RUN
,它允许你在某种意义上运行一个任意的shell命令,这个命令的动作会影响正在创build的映像。 因此,构build过程会一直等到命令终止。
看起来你想在图像启动时启动服务。 为此,请改用CMD
命令。 它告诉Docker当图像启动时应该执行什么。