Dockerfile:运行结果为否操作
我有一个Dockerfile,其中即时通讯试图运行一个启动java进程的deamon。
如果我将脚本embedded到Dockerfile中,就像这样。
RUN myscript.sh
当我在结果容器上运行/ bin / bash时,我看不到来自jps的条目。
但是,我可以很容易地将脚本作为CMDembedded,在这种情况下,当我发出
docker run asdfg
我看到过程正常开始。
所以,我的问题是,当我们在一个Dockerfile中启动一个背景asynchronous过程时,它的副作用总是会被排除在容器之外?
后台进程需要在容器启动时启动,而不是映像构build。 所以你的脚本需要通过CMD
或ENTRYPOINT
运行。
CMD
或ENTRYPOINT
仍然可以是一个包含多个命令的脚本。 但我想你的情况,如果你想要几个后台进程,使用示例supervisord
将是你最好的select。
此外,请查看一些已经存在的Dockerfiles
以了解它们如何融合在一起。