在 Docker 中运行多个 python 进程

Shu*_*ain 5 python shell multiple-processes docker dockerfile

我是 docker 新手,试图在 docker 中运行多个 python 进程。虽然不推荐,但它应该按照这里的建议工作“ https://docs.docker.com/engine/admin/multi-service_container/

我的 Dockerfile :

FROM custom_image
MAINTAINER Shubham 
RUN apt-get update -y
COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
ENTRYPOINT ["/bin/bash"]
CMD ["start.sh"]
Run Code Online (Sandbox Code Playgroud)

开始.sh:

nohup python flask-app.py &
nohup python sink.py &
nohup python faceConsumer.py &
nohup python classifierConsumer.py &
nohup python demo.py &
echo lastLine
Run Code Online (Sandbox Code Playgroud)

运行命令:

docker run --runtime=nvidia -p 5000:5000 out_image
Run Code Online (Sandbox Code Playgroud)
  • 当我转到终端并运行时,相同的 shell 脚本工作。
  • 没有 nohup 试过,没有用。
  • 尝试 python subprocess 也启动其他 python 进程,没有工作。

是否可以在没有 supervisord 或 docker-compose 的情况下运行多个进程?

更新:没有收到任何错误,只有“lastLine”正在打印并且 docker 容器退出。

Han*_*nnu 1

你的问题是把一切都放在后台。您的容器启动,执行所有命令,然后在 CMD 进程完成时退出 - 尽管后台进程正在运行。Docker 不知道这一点。

您可以尝试在后台运行其他所有内容,但是然后

python demo.py
Run Code Online (Sandbox Code Playgroud)

就这样。假设 demo.py 不退出,这将导致进程保持活动状态。