![](/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.