Process Dockerfile:运行结果为无操作

Process Dockerfile:运行结果为无操作,process,docker,Process,Docker,我有一个Dockerfile,其中我试图运行一个启动java进程的deamon 如果我将脚本嵌入Dockerfile,就像这样 RUN myscript.sh 在生成的容器上运行/bin/bash时,没有看到来自jps的条目 但是,我可以很容易地将脚本作为CMD嵌入,在这种情况下,当我发出 docker run asdfg 我看到程序正常启动 所以,我的问题是,当我们在Dockerfile中启动后台异步进程时,它的副作用是否总是从容器中排除 后台进程需要在容器启动时启动,而不是在映像生成时启

我有一个Dockerfile,其中我试图运行一个启动java进程的deamon

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

RUN myscript.sh
在生成的容器上运行/bin/bash时,没有看到来自jps的条目

但是,我可以很容易地将脚本作为CMD嵌入,在这种情况下,当我发出

docker run asdfg
我看到程序正常启动


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

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

CMD
ENTRYPOINT
仍然可以是包含多个命令的脚本。但我可以想象,在您的情况下,如果您需要几个后台进程,那么使用example
supervisord
将是您的最佳选择

此外,请查看一些已有的
Dockerfiles
,了解它们是如何组合在一起的