Python Gunicorn被一个Flask应用程序卡在docker运行命令上

Python Gunicorn被一个Flask应用程序卡在docker运行命令上,python,docker,flask,gunicorn,devops,Python,Docker,Flask,Gunicorn,Devops,我已经构建了我的容器app\u container,根据我的应用程序代码公开了端口8000。容器的入口点是ENTRYPOINT[“/usr/local/bin/gunicorn”、“web\u接口:app”、“-w4”、“-t90”、“--log level=info”、“-b127.0.0.1:8000”、“--reload”] 当我使用docker run--link postgres\u db\u container--name foo app\u container构建并运行容器时,它会

我已经构建了我的容器
app\u container
,根据我的应用程序代码公开了端口8000。容器的入口点是
ENTRYPOINT[“/usr/local/bin/gunicorn”、“web\u接口:app”、“-w4”、“-t90”、“--log level=info”、“-b127.0.0.1:8000”、“--reload”]

当我使用
docker run--link postgres\u db\u container--name foo app\u 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:8000”
    ,而不是
    “-b 127.0.0.1:8000”
    ,这是docker映射端口的要求。因此,请参见
    docker ps
    ,在端口列中搜索符号
    ->
    (您应该看到
    0.0.0.0:8000->8000


然后,在您的web浏览器中导航到
localhost:8000
,以检查您的应用程序是否正确呈现。

并且,您的应用程序是否能够处理请求?抱歉,应该在其中添加该内容,但不是。哦。。请收听
“-b 0.0.0.0:8000”
,而不是
”-b 127.0.0.1:8000”
,这是docker映射端口的要求。请确保映射端口(请参阅
docker ps
,在端口列中搜索符号
->
)。然后告诉我们这会产生什么结果:
curl localhost:8000
@Robert You da man!你推荐的一系列东西起到了作用。我在浏览器中导航到
localhost:8000
,并呈现了页面。