类似的问题似乎存在,但没有一个有明确的答案(至少对我而言)。我在一个带有bin/start-ds
文件的容器中有一个LDAP服务器。问题是shell脚本完成后容器退出。我理解退出,如果脚本只是打印一条消息,但在我的情况下,它启动一个过程。并且由于进程正在运行,我希望我的容器在detach
模式下启动时无限期运行。但情况并非如此,它会立即退出。任何指针都会非常感激。以下是我的简单Dockerfile
:
FROM unboundid-base:0.2
MAINTAINER helloworld
CMD ["/home/unboundid/UnboundID-DS/bin/start-ds"]
答案 0 :(得分:2)
可能有两个原因:
CMD ["/home/unboundid/UnboundID-DS/bin/start-ds", "--nodetach"]
希望这有帮助。
答案 1 :(得分:1)
正如我猜,你使用:http://docs.oracle.com/cd/E19623-01/820-6171/startds.html
所以根据文档添加:--nodetach option
CMD ["/home/unboundid/UnboundID-DS/bin/start-ds", "--nodetach"]
答案 2 :(得分:0)
我在docker容器中运行所有UnboundID服务器产品以进行dev / test / troubleshooting。我的Dockerfile CMD行是:
CMD ${UBID_HOME}/bin/start-${UBID_PRODUCT};/bin/bash
只要您离开正在运行的前台进程,容器就不会退出,并且留下比shell更好的进程与服务器进行交互。