Все сервисы в docker-compose находятся в сети, созданной docker-compose, и могут быть адресованы именами своих сервисов из других сервисов.В вашем случае имена служб - это база данных и серверная часть, так что, например, база данных может получить доступ к базе данных с помощью чего-то вроде tcp: // database: 27017.Вам больше не нужно связывать их.
https://runnable.com/docker/docker-compose-networking
Имейте в виду, что зависит_ только ждет запуска процесса и не ожидает его готовности к приему соединений.
https://docs.docker.com/compose/compose-file/#depends_on https://docs.docker.com/compose/startup-order
Сопоставление портов необходимо только в том случае, если вы хотите сделать службу доступной с локального компьютера.В вашем примере бэкэнд-сервис доступен через localhost: 8080.
Если вы хотите, чтобы внешний контейнер обращался к сервису docker-compose, tne localhost: 8080 не будет работать, потому что localhost в контейнере не совпадает с localhost какна вашем локальном компьютере, где работают док-контейнеры.Вы можете вручную создать сеть докеров и подключить к ней сервисы контейнеров и компоновщиков.См. Ссылку docker-compose-network и посмотрите раздел «Существующие сети».
Помогает ли это вам?