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

如何在docker中运行两个python应用程序,python,web-services,docker,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"] 它不起作用。有什么想法吗 您的shell脚本不能终止,因此请使用强睡眠将其锁定在while

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

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

exec python __server_code.py &
exec python server_time_test.py &
在dockerfile中,我尝试运行这两个python应用程序

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

它不起作用。有什么想法吗

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

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

最终,您可能希望求助于一个入口点(bash或其他脚本语言),该入口点能够检测应用程序崩溃,以便容器在出现故障时退出


我为您发布了一个功能齐全的Bash entrypoint,它可以实现这一点,还有更多功能。

看起来您的run命令只是设置文件权限,实际上并没有执行脚本。也许可以更改run命令

前台必须有一个进程。所以去掉最后一个&。不要使用exec

cd /rfk-thrift/nlp_search
python __server_code.py &
python server_time_test.py
在Dockerfile中:

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

RUN
指令仅在生成过程中引用。当您启动容器时,它将不会运行。您想使用
ENTRYPOINT
CMD

我更新了答案