У меня есть две службы 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?