Я строю web API
, используя Flask
на Windows 10
машине. Приложение отлично работает на локальном. Поэтому я решил докернизировать его до того, как объект станет больше. Это структура приложения:
Application
|- docker-compose.yml
|- web
|- Dockerfile
|- requirements.txt
|- app.py
|- ...
Когда я собираю стек изображений (в данном случае у меня есть только одно) и запускаю контейнер, похоже, контейнер ведет себя правильно. Но как только я пытаюсь получить доступ к API
из Postman
или через веб-браузер, приложение отклоняет любую связь.
Это мой docker-compose.yml
:
version: '3'
services:
web:
build: ./web
ports:
- "5000:5000"
, и это мой Dockerfile
:
FROM python:3
WORKDIR /usr/src/app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 5000
CMD ["python", "app.py"]
для файла app.py
, вот его интересная часть:
if __name__ == "__main__":
app.run(debug=True, host='0.0.0.0')
Docker
вывод, что приложение работает на http://0.0.0.0:5000/
но я не могу сделать ни одного запроса к API ни http://0.0.0.0:5000/
, ни http://127.0.0.1:5000/
, ни даже localhost:5000/
.