Я пытаюсь вызвать мой контейнер, используя docker compose.Этот контейнер зависит от двух других контейнеров с именами «rabbitmq» и «mysqldb».
Мой сценарий заключается в том, что зависимые именованные контейнеры уже созданы с указанным именем.Это из-за некоторой дополнительной конфигурации, которая мне понадобилась для mysql.
Как я могу связать эти два контейнера с этим контейнером, используя docker-compose.Так что он также запускает мои именованные контейнеры при вызове этого контейнера myservice.
Буду признателен за любую помощь или направление.
myservice:
image: myaccount/myservice
ports:
- "8081:8081"
restart: always
depends_on:
- rabbitmq
- mysqldb
environment:
SPRING_DATASOURCE_URL: 'jdbc:mysql://mysqldb:3306/myservice'
SPRING_PROFILES_ACTIVE: 'mysql'
SPRING_RABBITMQ_HOST: 'rabbitmq'
healthcheck:
test: ["CMD", "curl", "-f", "http://192.168.99.100:8081/actuator/health"]
interval: 1m30s
timeout: 10s
retries: 3
ОБНОВЛЕНИЕ :
Мне удалось решить эту проблему с помощью external_links и моста по умолчанию.
version: '3'
myservice:
image: myaccount/myservice
ports:
- "8081:8081"
restart: always
external_links:
- rabbitmq
- mysqldb
network_mode: bridge
environment:
SPRING_DATASOURCE_URL: 'jdbc:mysql://mysqldb:3306/myservice'
SPRING_PROFILES_ACTIVE: 'mysql'
SPRING_RABBITMQ_HOST: 'rabbitmq'
healthcheck:
test: ["CMD", "curl", "-f", "http://192.168.99.100:8081/actuator/health"]
interval: 1m30s
timeout: 10s
retries: 3
Любая другая альтернатива приветствуется.Проблема заключается в использовании этого подхода, зависимые док-контейнеры уже должны быть запущены.Тем не менее, в случае, если контейнеры Docker не работают, я хочу, чтобы составить так же контейнеры.Есть идеи?