Docker конфигурация с наследованием - контейнеры не включены в сеть - PullRequest
0 голосов
/ 11 апреля 2020

У меня есть конфигурация, в которой файл 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"

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