#docker #docker-compose
#докер #docker-создание #docker
Вопрос:
У меня всего 2 дня изучения docker, и я не знаю, как найти информацию о том, как подключить две службы. Итак, в моем случае я выполняю упражнение, в котором мне нужно
- уровень опроса, позволяющий опросу взаимодействовать с redis.
- уровень результата, позволяющий результату взаимодействовать с базой данных.
- резервный уровень, позволяющий работнику взаимодействовать с redis и db.
и мой docker-compose.yml выглядит следующим образом:
version: '3.0'
services:
poll:
build: poll/.
ports:
- "5000:80"
networks:
- poll-tier
redis:
image: "redis"
expose:
- "6379"
worker:
build: worker/.
networks:
- back-tier
db:
image: "postgres"
volumes:
- "db-data:/var/lib/postgresql/data"
result:
build: result/.
networks:
- result-tier
volumes:
db-data:
networks:
poll-tier:
name: redis
result-tier:
name: db
back-tier:
name: redis, db
Итак, вопрос в том, как я могу общаться с различными службами?
Ответ №1:
Добавляя сеть к службе, вы ограничиваете ее связь только внутри этой сети, поэтому в вашем случае для перекрестной связи вам необходимо добавить более одной сети. Например, в вашей службе опроса вам необходимо иметь как «уровень опроса», так и «резервный уровень», чтобы служба опроса могла взаимодействовать со службой redis.
Ваш файл компоновки будет выглядеть примерно так:
version: '3.0'
services:
poll:
build: poll/.
ports:
- "5000:80"
networks:
- poll-tier
redis:
image: "redis"
expose:
- "6379"
networks:
- back-tier
- poll-tier
worker:
build: worker/.
networks:
- back-tier
db:
image: "postgres"
volumes:
- "db-data:/var/lib/postgresql/data"
networks:
- back-tier
- result-tier
result:
build: result/.
networks:
- result-tier
volumes:
db-data:
networks:
poll-tier:{}
result-tier:{}
back-tier:{}