[英]Gunicorn is stuck on docker run command with a Flask Application
我已經構建了我的容器app_container
,根據我的應用程序代碼公開了端口 8000。 容器的入口點是ENTRYPOINT ["/usr/local/bin/gunicorn", "web_interface:app", "-w 4", "-t 90", "--log-level=info", "-b 127.0.0.1:8000", "--reload"]
。
當我使用docker run --link postgres_db_container --name foo app_container
構建並運行容器時,它會向應用程序運行 gunicorn 命令。 與我在本地運行應用程序時不同,它停在
[2017-06-19 16:01:16 +0000] [1] [INFO] Starting gunicorn 19.7.1
[2017-06-19 16:01:16 +0000] [1] [INFO] Listening at: http://127.0.0.1:8000
[2017-06-19 16:01:16 +0000] [1] [INFO] Using worker: sync
[2017-06-19 16:01:16 +0000] [8] [INFO] Booting worker with pid: 8
[2017-06-19 16:01:16 +0000] [10] [INFO] Booting worker with pid: 10
[2017-06-19 16:01:16 +0000] [11] [INFO] Booting worker with pid: 11
[2017-06-19 16:01:16 +0000] [13] [INFO] Booting worker with pid: 13
任何人都知道為什么 gunicorn 過程只是停在這里,而不是繼續?
也沒有錯誤可以繼續。 因此,如果您對如何獲取更多信息有任何想法,我會全力以赴...
編輯:
當使用control+c
取消進程時,我看到一條測試打印消息:
^C[2017-06-19 16:09:27 +0000] [1] [INFO] Handling signal: int
[2017-06-19 16:09:27 +0000] [10] [INFO] Worker exiting (pid: 10)
[2017-06-19 16:09:27 +0000] [11] [INFO] Worker exiting (pid: 11)
[2017-06-19 16:09:27 +0000] [8] [INFO] Worker exiting (pid: 8)
---- Generate Mapping ----
---- Preparing Databases ----
所以看起來 gunicorn 掛在了某個進程上,但我不知道如何找出它是什么。
讓我們給出一些組合建議:
檢查您是否將端口映射到本地主機以訪問容器應用程序:
docker run -p 8000:8000 (rest of the command)
聽"-b 0.0.0.0:8000"
而不是"-b 127.0.0.1:8000"
,這是 docker 映射端口的要求。 因此,請參閱docker ps
,在 PORTS 列中搜索符號->
(您應該看到0.0.0.0:8000->8000
。
然后,在您的 Web 瀏覽器中導航到localhost:8000
以檢查您的應用程序是否正確呈現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.