Конфликт имени службы Docker с внешней сетью - PullRequest
0 голосов
/ 20 октября 2019

Я пытаюсь соединить два локально разработанных проекта, работающих в docker-compose, используя внешнюю сеть .

С одной стороны у меня есть 1-е приложение, предназначенное для показа. Compose содержит хосты: app и rabbit:

version: '3.4'

services:
  app:
    # ...
  rabbit:
    # ...

networks:
  default:
    driver: bridge

С другой стороны у меня есть второе приложение, ожидающее увидеть 1-е приложение:

version: '3.4'

services:
  app:
    # ...
    networks:
      - paymentservice_default
      - default

networks:
  paymentservice_default:
    external: true

Возможно получение хоста rabbit.paymentservice_default.

Однако служба app (1-й) конфликтует с app (2-й):

root@6db86687229c:/app# ping app.paymentservice_default
PING app.paymentservice_default (192.168.80.6) 56(84) bytes of data.

root@6db86687229c:/app# ping app
PING app (192.168.80.6) 56(84) bytes of data.

В общем, со 2-й точки зрения, хосты app и app.paymentservice_default используют один и тот же IPделая app.paymentservice_default недоступным для обнаружения.

Вопрос здесь в том, есть ли у меня правильная конфигурация, и можно ли избежать конфликта без изменения имен служб app? Почему это ограничение? Принимая во внимание, что каждая конфигурация docker-compose совместно используется проектами и может быть разработана в мире микросервисов.

$ docker-compose --version
docker-compose version 1.17.1, build unknown
$ docker --version
Docker version 19.03.4, build 9013bf583a

Спасибо.

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