如何在Docker中运行两个python应用程序
我想在Docker中运行两个不同的端口的python applicaiton。
我的shell脚本在下面,名字是serverRun.sh
exec python __server_code.py & exec python server_time_test.py &
在dockerfile中,我试图运行这两个python应用程序
RUN ["chmod", "+x", "./serverRun.sh"]
它不起作用。 任何想法?
看起来你的运行命令只是设置文件权限,它并不实际执行脚本。 也许改变运行命令。
RUN
指令仅在构build期间引用。 启动容器时不会运行。 你想使用ENTRYPOINT
或CMD
前台必须有一个进程。 所以删除最后&。 不要使用exec
cd /rfk-thrift/nlp_search python __server_code.py & python server_time_test.py
而这在Dockerfile中:
RUN chmod +x ./serverRun.sh CMD ./serverRun.sh
你的shell脚本不能终止,所以把它锁在一个强烈的睡眠while循环。
Docker检测入口点的终止,并结束容器。
最终,您可能需要使用能够检测应用程序崩溃的入口点(bash或其他脚本语言),以便您的容器在失败时退出。
我为你发布了一个function齐全的Bash入口点,它完成了这一点,以及更多。
- 如何在传播IP地址时避免Docker中多余的容器链接?
- sh'alias'在Jenkinsfile中不会提供任何输出
- AWS ECS是否支持每个容器的dynamic可伸缩性?
- 如何在使用Dockerfile构build时解决错误“没有这样的文件或目录”错误
- 此网站无法联系到docs / docker.github.io
- 什么时候在Docker容器中使用不带`–tty`的`–interactive`?
- 运行docker没有主机操作系统?
- 使用Ansible,Jenkins和docker工具来构build快速的testing环境
- AWS ECS和Docker:不能通过tcp:// <MY-ID> .dkr.ecr.us-east-1.amazonaws.com:2375 / <PROJECT>连接到Docker守护进程。