python - 在 docker 容器上运行时无法连接到 Flask

标签 python docker flask

我正在尝试将一个简单的 Flask 应用程序移动到 docker,但我无法弄清楚为什么无法从浏览器访问该应用程序。

docker-compose 文件

version: '3'
services:
  web:
    build: .
    ports:
     - "5000:5000"
    volumes:
      - .:/app
    environment:
      FLASK_APP: api
      FLASK_ENV: development

  redis:
    image: "redis:alpine"

dockerfile

FROM python:3.7

ADD . /app
WORKDIR /app

RUN pip install -r requirements.txt
CMD ["flask", "run"]

__init__py:

def create_app(test_config=None):
  app = Flask(__name__, instance_relative_config=True)
  ...

  return app

来自 docker-compose up --build 的结果

web_1    |  * Serving Flask app "api" (lazy loading)
web_1    |  * Environment: development
web_1    |  * Debug mode: on
web_1    |  * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
web_1    |  * Restarting with stat
web_1    |  * Debugger is active!
web_1    |  * Debugger PIN: 277-205-758

但是当我进入浏览器时:

The connection was reset

enter image description here

有什么想法吗?我看不到我错过了什么,因为服务器正在运行,但它确实立即重置了连接...

编辑:

  • 我确实尝试通过 localhost 0.0.0.0 访问它,也使用容器 IP 地址

最佳答案

尝试

CMD ["flask", "run", "--host=0.0.0.0"]

关于python - 在 docker 容器上运行时无法连接到 Flask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54776600/

相关文章:

docker - DownGrade ASP Core Docker支持的项目

python - 如何在 SQLAlchemy 中定义无符号整数

python - 使用 Flask 测试异常返回码

python - 将 R 代码转换为 Python 代码

docker - docker 程序的进程所有者

Dockerized Vue 应用程序 - 热重载不起作用

python - Flask-SQLAlchemy 左外连接过滤查询

python - 如何在 Sphinx (sphinxcontrib.httpdomain) 上创建基于 '.. http' 指令的目录?

python 仅当没有匹配时才添加到列表

python - 句子打印太多次