2017-06-19 73 views
3

我有我的容器​​內置,根據我的應用程序代碼公開端口8000。該容器的入口點是ENTRYPOINT ["/usr/local/bin/gunicorn", "web_interface:app", "-w 4", "-t 90", "--log-level=info", "-b 127.0.0.1:8000", "--reload"]Gunicorn被困在碼頭運行命令與Flask應用程序

當我使用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在某個過程中被掛斷了,但我不知道如何找出它是什麼。

+0

而且,是你的應用程序能夠處理請求嗎? – Robert

+0

對不起,應該在那裏添加那個,但是沒有。 –

+0

哦..聽''-b 0.0.0.0:8000「'而不是'」-b 127.0.0.1:8000「',那個是碼頭映射端口的要求 – Robert

回答

1

讓我們給一些組合建議:

  • 檢查所映射端口連接到本地主機以訪問容器應用:

    docker run -p 8000:8000 (rest of the command) 
    
  • "-b 0.0.0.0:8000"而不是"-b 127.0.0.1:8000",這是docker映射端口的要求。所以看到docker ps,搜索港口欄中的符號->(你應該看到0.0.0.0:8000->8000

然後導航到localhost:8000在Web瀏覽器來檢查您的應用程序中可以正確顯示。

相關問題