如何在 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"]

它没有用。知道吗?

前台必须有一个进程。因此,请删除最后一个&。并且不要使用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 命令只是设置文件权限,它实际上并没有执行脚本。也许更改运行命令。

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

你的 shell 脚本不能终止,所以在强睡眠的情况下将其锁定在 while 循环中。

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

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

我在这里为您发布了一个功能齐全的 Bash 入口点,它正是这样做的,甚至更多。

相关内容

  • 没有找到相关文章

最新更新