Docker 容器正在启动,但使用 FastApi 没有给出任何响应

问题描述 投票:0回答:2

我刚刚制作了一个 Fast api 并使用 docker 容器部署了它。但是当在浏览器上运行 127.0.0.1:5000 时,它有空响应。 主.py文件:

from fastapi import FastAPI
from starlette.status import HTTP_302_FOUND,HTTP_303_SEE_OTHER
import spacy
from string import punctuation
from mangum import Mangum

nlp = spacy.load("en_core_web_lg",disable=["tok2vec", "parser"])

app = FastAPI()

@app.get('/')
def home():
    return {"answer":"Hello World"}

@app.get('/tags')
def prep_data(text):
    tag = tokens(text, nlp)
    tags = getdict(tag)
    return {
        'tags':tags
    }

Docker 文件:

FROM tiangolo/uvicorn-gunicorn-fastapi:python3.8

COPY . /app

COPY ./requirements.txt /app/requirements.txt

WORKDIR /app

EXPOSE 5000

RUN pip install -r requirements.txt
RUN python -m spacy download en_core_web_lg

CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "5000"]

我遵循的文件结构:

/app
    main.py
Dockerfile
requirements.txt

这些是所有内容,我没有收到浏览器的任何响应。

python docker dockerfile fastapi
2个回答
1
投票

运行容器时,您还应该将暴露的端口链接到主机上的开放端口。

docker run -dp <host_port>:<container_port> <image>

0
投票

我也遇到这个问题了 我的决定:

Docker 文件: ”“” 来自Python:3.12 运行 mkdir /mc_app 工作目录/mc_app 复制requirements.txt /mc_app/ 曝光 8000 曝光 80 运行 pip install --升级 pip 运行 pip install -rrequirements.txt 复制 。 /mc_应用程序/ ”””

docker-compose.yaml: ”“” 版本:'3.9' 服务: mc_响应: 重新启动:始终 建造: 。 端口: - “8000:8000” 命令:> bash -c“uvicorn main:app --host ='0.0.0.0'--port = 8000 --reload” 卷: - .:/mc_app ”””

这似乎对我有帮助:“--host='0.0.0.0'--port=8000”

© www.soinside.com 2019 - 2024. All rights reserved.