我刚刚制作了一个 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
这些是所有内容,我没有收到浏览器的任何响应。
运行容器时,您还应该将暴露的端口链接到主机上的开放端口。
docker run -dp <host_port>:<container_port> <image>
我也遇到这个问题了 我的决定:
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”