Docker 中对 Flask 的 GET 请求失败

failing GET request to Flask in Docker

Docker 容器中 Flask 的简单请求失败,这里是 Dockerfile:

FROM python:3.8-slim

WORKDIR /app

COPY requirements.txt .

RUN pip install -r requirements.txt

EXPOSE 8000:8000

CMD [ "flask", "run" ]

这里是docker-compose.yml

services:
  vodolei:
    image: my_api:demo
    ports:
      - 8000:8000
    volumes:
      - ./src:/app
    environment:
      FLASK_APP: main.py
      FLASK_ENV: development
      FLASK_RUN_HOST: 127.0.0.1
      FLASK_RUN_PORT: 8000

这里是 main.py:

from flask import Flask

app = Flask(__name__)


@app.route('/')
def hello():
  return 'Hello!'

Idk,我已经多次检查过了,这一定是我看不到的明显的东西。但是向 http://127.0.0.1:8000 returns 发送 GET 请求时,在 Insomnia 中出现一般性错误,其中包含“错误:服务器未返回任何内容(无 headers,无数据)”字样。

您的应用绑定到 127.0.0.1,这意味着它将只接受来自容器内部的连接。如果你让它绑定到 0.0.0.0,它将接受来自任何地方的连接

services:
  vodolei:
    image: my_api:demo
    ports:
      - 8000:8000
    volumes:
      - ./src:/app
    environment:
      FLASK_APP: main.py
      FLASK_ENV: development
      FLASK_RUN_HOST: 0.0.0.0
      FLASK_RUN_PORT: 8000