簡體   English   中英

Gunicorn 被 Flask 應用程序困在 docker run 命令上

[英]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.

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