我有一个在多个端口上运行服务的docker容器。
当我尝试在Dockerfile的中途启动这些过程之一时,它将导致构建过程无限期地停止。
RUN /opt/webhook/webhook-linux-amd64/webhook -hooks /opt/webhook/hooks.json -verbose
因此,该程序正在按预期方式运行,但永远不会继续运行。
我尝试在命令末尾添加
&
来告诉bash并行运行下一步,但这会导致该服务不在最终镜像中运行。我还尝试将程序的输出重定向到/dev/null
。我该如何解决?
最佳答案
您在这里有一个误解。执行Dockerfile中的命令后,会创建一个Docker镜像。 Dockerfile中的一种命令类型是 RUN
,它允许您运行一个任意的shell命令,该命令的操作在某种意义上影响正在创建的镜像。
因此,生成过程将等待直到命令终止。
似乎在启动镜像时要启动服务。为此,请使用 CMD
命令。它告诉Docker启动镜像时应该执行什么操作。
关于docker - Docker处理不完的进程?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45863084/