Проблема с достижением приложения фляги в docker-compose - PullRequest
0 голосов
/ 20 декабря 2018

еще один вопрос докера / фляги.У меня проблемы с подключением к моему приложению с колбой из другого контейнера в docker-compose.

Мой dockerfile устанавливает приложение с колбой как:

COPY ./ /app/

WORKDIR /app

RUN find -name "*.pyc" -delete && \
    pip3 install -r requirements.txt

EXPOSE 5000

CMD ["python3", "app.py"]

Приложениеработает на 0.0.0.0:5000, docker-compose.yml выглядит так:

version: '3'

services:

  app:
    build: .
    ports:
      - "5000:5000"

  test:
    image: alpine:3.8

Теперь после docker-compose up я могу curl с хоста, как:

curl -i http://0.0.0.0:5000
...
200 - ok

но если я прыгаю в тестовый контейнер, я получаю 404:

docker-compose run test sh
# apk --update add curl
# curl -i http://app:5000
...
404 - not found

На самом деле эти 2 контейнера должны видеть друг друга, и действительно, когда я смотрю на логииз app Я вижу, что поступают запросы от test. Но они отвечают 404.

Что я здесь не так делаю?

Кстати, у меня есть минимальный пример здесь: https://github.com/mRcSchwering/flask_docker-compose

1 Ответ

0 голосов
/ 20 декабря 2018

Это потому, что ваша конфигурация

app.config['SERVER_NAME'] = '0.0.0.0:5000'

Ваша колба считает, что ее имя 0.0.0.0:5000, поэтому не отвечает другим.

Чтобы проверить, позвоните curl -H Host:0.0.0.0:5000 -i http://app:5000 из теста.

Вы можете удалить этот конфиг и запустить сервер с

app.run(host='0.0.0.0')
...