目前我对我的小型 python 应用程序进行了docker化,似乎多个进程不能并行或同时运行。
在没有 docker 的情况下运行应用程序时,我可以简单地打开两个终端并分别运行它们。在 docker 中如何完成它?
runner.sh
#!/bin/bash
exec python3 cron.py //using from apscheduler.schedulers.blocking import BlockingScheduler
exec gunicorn -k eventlet -w 1 app:app -b :8082 // using python socketio
Dockerfile
COPY runner_script.sh runner_script.sh
RUN ["chmod", "+x", "runner_script.sh"]
CMD ./runner_script.sh
但似乎只有第一个进程才会运行。
答案 0 :(得分:0)
这与 Docker 无关。如果您在本地工作站上运行此脚本,您会得到相同的行为。您不想使用 exec。您对它的使用就是第二个命令永远不会运行的原因。如果你去掉 exec 关键字,你的两个命令都应该一个接一个地运行。如果你想同时运行它们,那么你可以在第一个命令的末尾添加一个 & 在后台运行它。