У меня есть конфигурация, в которой файл docker-compose
в родительской папке расширяет другие файлы docker-compose
в дочерних приложениях и склеивает их вместе с пользовательским сетевым вызовом appnet
version: '2'
services:
proxy:
image: nginx:1.13
volumes:
- ./proxy/conf/proxy.conf:/etc/nginx/conf.d/default.conf:ro
ports:
- "80:80"
- "443:443"
networks:
- appnet
module1:
extends:
file: module1/docker-compose.yml
service: php
db_module1:
extends:
file: db_module1/docker-compose.yml
service: db_module1
ports:
- "5432:5432"
module2:
extends:
file: module2/docker-compose.yml
service: php
db_module2:
extends:
file: module2/docker-compose.yml
service: db_module2
ports:
- "5433:5432"
module3:
extends:
file: module3/docker-compose.yml
service: php
db_module3:
extends:
file: module3/docker-compose.yml
service: db_module3
ports:
- "5434:5432"
module4:
extends:
file: module4/docker-compose.yml
service: go
db_module4:
extends:
file: module4/docker-compose.yml
service: db_module4
ports:
- "3306:3306"
module5:
extends:
file: module5/docker-compose.yml
service: go
db_module5:
extends:
file: module5/docker-compose.yml
service: module5
ports:
- "3307:3306"
module6:
extends:
file: module5/docker-compose.yml
service: go
db_module5:
extends:
file: module5/docker-compose.yml
service: db_module5
ports:
- "3308:3306"
redis:
image: redis:alpine
networks:
- appnet
mail:
image: mailhog/mailhog:latest
ports:
- "8025:8025"
networks:
- appnet
networks:
appnet:
driver: "bridge"
volumes:
data_module1:
driver: "local"
data_module2:
driver: "local"
data_module3:
driver: "local"
Почему-то модуль 4, 5 и модуль 6 не могут соединиться с базами данных и не могут быть найдены в сети ap pnet, все остальные могут и есть. Общим для них является то, что они являются golang службами и имеют mysql баз данных. Не знаю, важно ли это, но модули 1, 2 и 3 (все остальные с db) имеют docker-compose.override.yml
, но я также пробовал аналогичные конфигурации в переопределениях в модуле 4, 5 и 6, и это не сработало.
Я просто не знаю, что еще попробовать:
module4 docker-compose
version: "2"
services:
go:
build: .
volumes:
- .:/module4
ports:
- "8080:8080"
networks:
- appnet
db_module4:
image: mysql:5.7.25
volumes:
- ./sql:/docker-entrypoint-initdb.d/
networks:
- appnet
environment:
MYSQL_ROOT_PASSWORD: module4
MYSQL_DATABASE: module4
networks:
appnet:
driver: "bridge"
module5 docker-compose
version: "2"
services:
go:
build: .
volumes:
- .:/module5
ports:
- "8082:8080"
networks:
- appnet
db_module5:
image: mysql:5.7.25
volumes:
- ./sql:/docker-entrypoint-initdb.d/
networks:
- appnet
environment:
MYSQL_ROOT_PASSWORD: module5
MYSQL_DATABASE: module5
networks:
appnet:
driver: "bridge"
module6 docker-compose
version: "2"
services:
go:
build: .
volumes:
- .:/module6
ports:
- "8081:8080"
networks:
- appnet
db_module6:
image: mysql:5.7.25
volumes:
- ./sql:/docker-entrypoint-initdb.d/
networks:
- appnet
environment:
MYSQL_ROOT_PASSWORD: module6
MYSQL_DATABASE: module6
networks:
appnet:
driver: "bridge"