Dockerfile:RUN导致No op

时间:2014-12-30 04:47:47

标签: process docker

我有一个Dockerfile,我试图运行一个启动java进程的守护进程。

如果我将脚本嵌入Dockerfile中,就像这样。

RUN myscript.sh

当我在生成的容器上运行/ bin / bash时,我看到来自jps的 no 条目。

但是,我可以轻松地将脚本嵌入 CMD ,在这种情况下,当我发出

docker run asdfg

我看到这个过程正常开始。

所以,我的问题是,当我们在 Dockerfile 中启动后台异步进程时,是否总是会将其副作用从容器中排除?

1 个答案:

答案 0 :(得分:2)

后台进程需要在容器启动时启动,而不是在映像构建时启动。 因此,您的脚本需要通过CMDENTRYPOINT运行。

CMDENTRYPOINT仍然可以是包含多个命令的脚本。但我想在你的情况下,如果你想要几个后台进程,使用示例supervisord将是你最好的选择。

另外,请查看一些已存在的Dockerfiles,以了解它们是如何组合在一起的。