簡體   English   中英

docker + gunicorn + nginx需要supervisord嗎?

[英]Is supervisord needed for docker+gunicorn+nginx?

我在碼頭工人手里拿着手槍運行django,我的碼頭工作點是:

CMD [“gunicorn”,“myapp.wsgi”]

假設已經有一個進程在系統啟動時運行docker並在停止時重新啟動docker容器,我是否還需要使用supervisord? 如果gunicorn將崩潰不會崩潰碼頭,然后重新啟動?

你需要在Docker容器中需要像supervisord(或其他進程監督器)這樣的東西的唯一一次是你需要在容器啟動時啟動容器內的多個獨立進程。

例如,如果你需要同時啟動nginx的和在同一個容器gunicorn,你就需要調查某種過程監督員。 但是,更常見的解決方案是將這兩個服務放在兩個單獨的容器中。 docker-compose這樣的工具可以幫助管理多容器應用程序。

如果容器退出,因為主進程退出,如果您在第一次啟動時配置了重新啟動策略,Docker將重新啟動該容器(例如,通過docker run --restart=always ... )。

簡單回答是不。 是的,你可以在同一個容器中啟動nginxgunicorn 您可以創建一個腳本來執行容器運行所需的所有內容,並在Dockerfile末尾使用CMD啟動它。 或者您可以將所有內容組合在一起:

CMD (cd /usr/src/app && \
     nginx && \
     gunicorn wsgi:application --config ../configs/gunicorn.conf)

希望有所幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM