Я новичок в компьютерных сетях и Docker и пытаюсь развернуть и запустить небольшое приложение FastAPI с помощью Docker. Приложение работает успешно, когда я запускаю его локально с помощью Uvicorn, но не запускается, когда я пытаюсь развернуть его с помощью Docker. Ниже приведено сообщение об ошибке. Моя ОС — Windows. Я получаю:
источник/main.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
Вот мой Dockerfile
FROM python:3.10-slim
WORKDIR /code
COPY ./requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
COPY ./src ./src
CMD ["uvicorn", "src.main:app", "--host", "0.0.0.0", "--port", "80", "--reload"]
Вот команды, которые я использовал в терминале:
docker build -t fastapi-image .
docker run --name fastapi-container -p 80:80 fastapi-image
вот мой журнал докера:
INFO: Will watch for changes in these directories: ['/code']
INFO: Uvicorn running on http://0.0.0.0:80 (Press CTRL+C to quit)
INFO: Started reloader process [1] using StatReload
INFO: Started server process [8]
INFO: Waiting for application startup.
INFO: Application startup complete.
моя файловая структура:
requirements.txt
Dockerfile
src
|--main.py
требования.txt
fastapi
uvicorn
🤔 А знаете ли вы, что...
Python популярен в машинном обучении и искусственном интеллекте.
Воспроизведя проблему, вы можете увидеть результат на localhost:80
.
См. также эти посты, чтобы узнать больше о различиях между localhost
и 0.0.0.0
: