У меня возникла небольшая проблема с пониманием того, как получить доступ к конечной точке из API, который я размещаю, потому что я впервые использую docker Compose. Проблема в том (я думаю), что я устанавливаю ПОРТ 5000 для Flask Api, но когда я пытаюсь
http://123.43.210.230:5000 (пример) достичь конечной точки, я получаю эту ошибку:(
https://i.sstatic.net/TMt1Y3BJ.png)
Конфигурация Flask в моем скрипте:
Код: Выделить всё
if __name__ == "__main__":
app.run(host="0.0.0.0", port=5000, debug=True)
docker-compose.yml:
Код: Выделить всё
version: '3.8'
services:
flask-app:
build: .
ports:
- "5000:5000"
depends_on:
- selenium-standalone
environment:
- FLASK_ENV=development
env_file:
- .env
selenium-standalone:
image: selenium/standalone-chrome:latest
ports:
- "4444:4444"
- "7900:7900"
shm_size: 2gb
Файл Docker:
Код: Выделить всё
FROM python:3.8-slim
WORKDIR /app
COPY requirements.txt requirements.txt
COPY . .
RUN pip install -r requirements.txt
EXPOSE 5000
CMD ["python", "arg.py"]
Структура проекта:
Код: Выделить всё
.env
requirements.txt
arg.py
Dockerfile
docker-compose.yml
Когда я ввел команду docker compose -d, кажется, все работает нормально, я проверяю контейнер с помощью API, и кажется, что все запустилось нормально, но когда я пытаюсь чтобы достичь конечной точки, которую показывает ошибка. Я проверил, что порты открыты, а брандмауэр отключен, поэтому не знаю, что может быть причиной проблемы. Если я попробую
http://123.43.210.230:4444 или
http://123.43.210.230:7900, он отлично отобразит сообщения селена, так что у меня просто проблемы с моим API.
Обновление:
Я попробовал завить
http://localhost:5000 на виртуальной машине, и он достиг конечной точки, но почему снаружи?
Подробнее здесь:
https://stackoverflow.com/questions/785 ... pose-issue