2017-07-06 45 views
1

我想在不同端口的docker中运行两个python应用程序。如何在docker中运行两个python应用程序

我的shell脚本下面,名字是serverRun.sh

exec python __server_code.py & 
exec python server_time_test.py & 
在dockerfile

,我试图运行这两个Python应用程序

RUN ["chmod", "+x", "./serverRun.sh"] 

它没有工作。任何想法?

+0

我更新了我的答案 – Fabien

回答

0

你的shell脚本不能终止,因此具有较强的睡眠while循环内将其锁定。

Docker检测到入口点的终止并结束容器。

最终,您可能需要使用能够检测应用程序崩溃的入口点(bash或其他脚本语言),以便您的容器在失败时退出。

我为您发布了一个全功能的Bash入口点here,它完全可以做到这一点,等等。

0

看起来你的运行命令只是设置文件权限,它并不实际执行脚本。也许改变运行命令。

0

您必须在前台有一个进程。所以删除最后的&。不要在Dockerfile使用EXEC

cd /rfk-thrift/nlp_search 
python __server_code.py & 
python server_time_test.py 

这:

RUN chmod +x ./serverRun.sh 
CMD ./serverRun.sh 
0

RUN指令生成过程中只引用​​。启动容器时它不会运行。你想使用ENTRYPOINTCMD

相关问题