Docker在conatiner中启动2个进程
新来的Docker和我读Dockerfile只能有1个CMD。
那么我该如何启动我的数据库服务器和应用程序服务器呢? 就像是:
CMD /root/database/bin/server run & CMD /root/appserver/bin/server run &
Docker只能在容器中启动一个进程 – 但是这个进程可以启动任何喜欢的进程。
Supervisord一直是一个非常stream行的select,然后继续出现你想要/需要的东西。
Docker可以运行尽可能多的进程。 在同一个容器中运行数据库和应用程序服务器是没有问题的。 但是,只能在容器中运行一个命令,因此该命令必须启动所有其他进程,只要容器运行(如果停止,容器将停止运行),该命令就必须运行。
所以开始一个shell脚本,它本身将启动所有其他的事情:
CMD /run.sh
shell脚本可能如下所示:
echo "Lets start up" :: Run your database server in background /root/database/bin/server run & :: Run your app server (not in background to keep the container up) /root/appserver/bin/server run