运行多个脚本并处理 Docker

时间:2021-03-04 08:54:22

标签: python dockerfile

目前我对我的小型 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

但似乎只有第一个进程才会运行。

1 个答案:

答案 0 :(得分:0)

这与 Docker 无关。如果您在本地工作站上运行此脚本,您会得到相同的行为。您不想使用 exec。您对它的使用就是第二个命令永远不会运行的原因。如果你去掉 exec 关键字,你的两个命令都应该一个接一个地运行。如果你想同时运行它们,那么你可以在第一个命令的末尾添加一个 & 在后台运行它。