【问题标题】:Empty response returned docker flask application空响应返回 docker flask 应用程序
【发布时间】:2017-03-08 01:39:03
【问题描述】:

所以我有一个简单的烧瓶应用程序,它使用 Flask-Script 并运行:

if __name__ == "__main__":
    manager.run()

我的码头文件:

CMD [ "python", "manage.py", "runserver", "-h", "0.0.0.0"]

我添加了 -h 0.0.0.0 以便它可以绑定到 docker localhost

然后我运行 docker 容器来发布端口 5000:

docker run -p 5000:5000 flask-app

然后运行并打印以下内容,告诉我我的应用正在运行:

 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
 * Restarting with stat

我尝试在主机上卷曲,但得到一个空响应错误:

* Empty reply from server 
* Connection #0 to host localhost left intact

然后我将一个 shell 放入我的容器中,发现我的应用正在侦听错误的地址(应该是 0.0.0.0)

root@91d7d0e2331c:/app# netstat -tln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 127.0.0.1:5000          0.0.0.0:*               LISTEN 

不知道我在这里做错了什么......

【问题讨论】:

  • 您使用的是哪个操作系统?
  • 你可以尝试使用--host吗?我不确定它会改变什么,但是...
  • 我认为你误解了 -h 在这里的作用,在 flask-script 和 manage.py 的上下文中它绑定到给定的本地主机。

标签: python docker flask


【解决方案1】:

抱歉,我刚刚意识到我需要重建容器以使用我为 manage.py runserver.... 添加的新命令,然后再运行

所以我做到了:

docker build -t flask-app:latest . -f build/Dockerfile

然后继续运行,它工作正常

【讨论】:

    猜你喜欢
    • 2020-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-18
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多