我有 Flask 应用程序容器,该容器必须在端口 5000 上运行。
我还有一个与队列有关的后台进程。这个过程有一个无限循环,这就是为什么我要在后台运行它。
我正在使用docker-compose.yml文件创建容器。现在,我只能运行一个命令来配置烧瓶服务器。
flask run --host=0.0.0.0 --port 5000
。我在docker-compose中使用了command
选项。
这是我要在后台python app/workload/services/queue_services.py > qlog.txt
中运行的命令。
当我在command
中首先放置后台命令时,服务器没有启动,我只看到后台脚本的输出。
当我首先使用flask run
命令时,后台脚本根本没有启动。
在容器启动时,是否有适当的方法来运行这两个命令?
答案 0 :(得分:3)
创建一个script.sh
#!/bin/bash
python app/workload/services/queue_services.py > qlog.txt &
flask run --host=0.0.0.0 --port 5000
并将其设置为您的命令
答案 1 :(得分:0)
尝试添加
CMD ["gunicorn", "--bind=0.0.0.0:5000", "--workers=1", "wsgi"]
在DockerFile中
答案 2 :(得分:0)
另一种方法可能是使用诸如supervisor之类的程序。这样,我们可以将其扩展到多种服务,而无需修改Dockerfile
https://docs.docker.com/config/containers/multi-service_container/
我用supervisor和jre编译了一个映像。 https://hub.docker.com/r/palashgoel/supervisord-jre