如何在docker中运行两个python应用程序

时间:2017-07-06 19:45:28

标签: python web-services docker

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

我的shell脚本如下,名称为serverRun.sh

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

,我正在尝试运行这两个python应用程序

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

它不起作用。任何的想法?

4 个答案:

答案 0 :(得分:0)

您的shell脚本不能终止,因此请将其锁定在具有强睡眠的while循环中。

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

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

我为您发布了一个功能齐全的Bash入口点here,它正是这样做的,还有更多。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

您必须在前台拥有一个进程。所以删除最后一个&amp ;.并且不要使用exec

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

这在Dockerfile中:

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

答案 3 :(得分:0)

RUN指令仅在构建期间引用。启动容器时它不会运行。您想使用ENTRYPOINTCMD