Подключиться к сервису из другого стека от docker-compose - PullRequest
1 голос
/ 08 июня 2019

Я пытаюсь подключить сервис один в стеке abc - abc_one к сервису два в стеке zyx - zyx_two. Эти сервисы совместно используют сеть az-network.

Я прочитал здесь , что это возможно вручную, но мне нужно сделать это с файлами docker-compose.yml для развертывания в моем рое.

Простая версия abc_one:

version:  "3.5"

services:

    one:
        image: "10.30.13.81:5000/dotnetmicroservice"
        environment:
            ElasticSearchLogging:Uri: "http://zyx_two:9200/"
        networks:
            - az-network

networks:
    az-network:
        external: true

и zyx_two

version:  "3.5"

services:

    two:
        image: "10.30.13.81:5000/dotnetmicroservice"
        networks:
            - az-network

networks:
    az-network:
        external: true

Ответы [ 2 ]

1 голос
/ 10 июня 2019

Должно работать без добавления префикса zyx_.

az-network должна быть наложенной сетью Docker

docker network create -d overlay --attachable az-network

Имя службы должно быть уникальным для всех стеков в одной сети.

стек abc (docker stack deploy -c abc-compose.yml abc)

version:  "3.5"

services:

    one:
        image: "10.30.13.81:5000/dotnetmicroservice"
        environment:
            ElasticSearchLogging:Uri: "http://two:9200/"
        networks:
            - az-network

networks:
    az-network:
        external: true

стек zyx (docker stack deploy -c zyx-compose.yml zyx)

version:  "3.5"

services:

two:
    image: "10.30.13.81:5000/dotnetmicroservice"
    networks:
        - az-network

networks:
    az-network:
        external: true
0 голосов
/ 08 июня 2019

Из справочной системы составьте ссылку о external, установленном в значение true:

Если установлено значение true, указывает, что эта сеть была создана вне Compose. docker-compose up не пытается создать его и выдает ошибку, если он не существует.

Поскольку оба ваших docker-compose устанавливают external в значение true, это вызовет ошибку и не создаст сеть.

Удалите опцию external из одного из docker-composes, сделайте это с тем, который всегда будет запускаться первым, поэтому он создает сеть, а затем другой стек просто подключается к ней.

...