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当图像启动时应该执行什么。