![](/img/trans.png)
[英]python docker sdk how to run multiple commands in containers.run
[英]How to run multiple commands on docker container on startup?
我有Flask应用程序容器,它必须在端口5000上运行。
我还有一个与队列相关的后台进程。 这个过程有一个无限循环,这就是我想在后台运行它的原因。
我正在使用 docker-compose.yml 文件来创建容器。 目前,我只能运行一个命令来启动 flask 服务器。
flask run --host=0.0.0.0 --port 5000
。 我正在使用 docker-compose 中的command
选项。
这是我想在后台运行的命令python app/workload/services/queue_services.py > qlog.txt
。
当我将后台命令放在command
中时,服务器没有启动,我只看到后台脚本中的 output 。
当我先放flask run
命令时,后台脚本根本没有启动。
是否有任何正确的方法可以在容器启动时运行这两个命令?
创建一个script.sh
#!/bin/bash
python app/workload/services/queue_services.py > qlog.txt &
flask run --host=0.0.0.0 --port 5000
并将其设置为您的命令
尝试添加
CMD ["gunicorn", "--bind=0.0.0.0:5000", "--workers=1", "wsgi"]
在 DockerFile
另一种方法可能是使用像 supervisord 这样的程序。 这样,我们可以将其扩展到多个服务,而无需修改 Dockerfile
https://docs.docker.com/config/containers/multi-service_container/
我用 supervisord 和 jre 编译了一个图像。 https://hub.docker.com/r/palashgoel/supervisord-jre
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.