一尘不染

Dockerfile:RUN导致无操作

docker

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

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

RUN myscript.sh

在生成的容器上运行/ bin / bash时, 没有 看到jps中的条目。

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

docker run asdfg

我看到该过程正常启动。

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


阅读 531

收藏
2020-06-17

共1个答案

一尘不染

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

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

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

2020-06-17