Доступность сети и видимость между контейнерами? - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть две службы python / flask, которые я хочу докеризировать.Одна услуга s1 является конечной точкой для пользователя.Второй s2 помогает s1.Таким образом, пользователь звонит s1, s1 звонит s2.

Как мне сделать так, чтобы ip из s2 был известен s1?Как мне сделать это путем минимизации количества параметров конфигурации (в идеале, просто измените только один параметр)?

Пока s1:

FROM python:3-alpine
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
EXPOSE ${FLASK_RUN_ON_PORT}
CMD [ "python", "-m", "flask", "run", "--host=0.0.0.0" ]

С .env:

FLASK_ENV=production
FLASK_APP=s1.py
FLASK_RUN_PORT=5000 

Пока s2:

FROM python:3-alpine
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
CMD [ "python", "-m", "flask", "run", "--host=0.0.0.0" ]

С .env:

FLASK_ENV=production
FLASK_APP=s2.py
FLASK_RUN_PORT=5050 

И docker-compose следующим образом:

version: '3'
services:
  webservice2:
    build: /path/to/s2
    env_file:
      - /path/to/s2/.env
    ports:
      - ${FLASK_RUN_ON_PORT}:${FLASK_RUN_ON_PORT}
    volumes:
    - .:/code
  webservice1:
    build: /path/to/s1
    env_file:
      - /path/to/s1/.env
    ports:
      - ${FLASK_RUN_ON_PORT}:${FLASK_RUN_ON_PORT}
    volumes:
    - .:/code
    depends_on:
      - webservice2

Итак, подведем итоги.Вопрос в том, как мне дать s1 понять, что s2 находится на порте 5050?

1 Ответ

0 голосов
/ 28 февраля 2019

Вы не делаете ничего особенного.

Из документов :

Ссылки не требуются для включения связи между службами - по умолчанию любая службаможет связаться с любой другой службой от имени этой службы.(См. Также, раздел Ссылки в Networking in Compose .)

Если вы не сделаете что-либо для изменения поведения по умолчанию, оба контейнера будут подключены к одной сети, ихост webservice1 будет известен из webservice2 и наоборот.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...