Mat*_*sso 8 windows docker fastapi
每个人!
我在使用 Docker 容器部署 FastAPI 应用程序时遇到问题。我已经测试过在没有 Docker 的情况下部署它,仅使用 FastAPI,并且一切正常。但是当我使用 Docker 时,我无法访问 API,只收到“连接被拒绝”消息。
这是我正在使用的Dockerfile :
FROM python:3.7-slim
WORKDIR /app/
COPY . /app/
RUN apt-get update && apt-get install -y --no-install-recommends apt-utils
RUN apt-get -y install curl
RUN apt-get install libgomp1
RUN pip install -r requirements.txt
EXPOSE 8000
CMD ["uvicorn", "main:app", "--host=0.0.0.0", "--reload"]
Run Code Online (Sandbox Code Playgroud)
注意:我必须构建的 API 是以 ML 为中心的,因此我需要声明一些如上所述的包,以便可以使用 LightGBM。
构建 Dockerfile 后,我运行了以下Docker 命令:
docker build -t ml_app:latest .
docker run -p 8000:8000 --name test_cont ml_app:latest
当我使用 检查正在运行的容器时docker ps,我发现容器工作正常,如图所示:
docker ps
另外,docker日志只返回FastAPI的默认消息:
INFO: Will watch for changes in these directories: ['/app']
INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
INFO: Started reloader process [1] using statreload
INFO: Started server process [7]
INFO: Waiting for application startup.
INFO: Application startup complete.
Run Code Online (Sandbox Code Playgroud)
我尝试使用 FastAPI 在运行容器时指示的 URL (http://localhost:8000)来访问 API 。我已使用浏览器、curl 和 Postman 的行命令针对此 URL 发送了请求。
我尝试过以下一些方法来解决这个问题:
那么,有人明白我做错了什么吗?或者我应该如何访问部署在容器中的API?
谢谢你们!
| 归档时间: |
|
| 查看次数: |
5481 次 |
| 最近记录: |