Я пытаюсь соединить два локально разработанных проекта, работающих в 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
Спасибо.