Add additional service network alias (project_name + service_name).
Description
By default, a service has 3 network aliases: container name, service name, container id.
Would be great to have one more default alias which would be computed from docker compose project name and service name. For example: project name: micro1, service name: app, so the alias would be: micro1-app.
This alias would help with solving the problem with DNS service name collisions when multiple Docker Compose projects are connected together with external networks.
Example:
docker-compose (A)
services:
app:
networks:
default:
web:
networks:
default:
common:
docker-compose (B)
services:
app:
networks:
common:
default:
The service web from compose A calling service app may call his internal service app or external service app from compose B.
Having a default alias like docker compose project name and service name would resolve the problem.
Currently, without this feature, I see 2 solutions:
- make all service name unique in all docker compose projects;
- set unique alias names in all docker compose projects,
It there is another solution, please write in comments.
Thank you.
Just running into this as well. Took me a long time to figure out that my requests to db were going to the other projects container instance, instead of the one in my current project... All because they share a unified external proxy that network so traefik can handle dynamic routing.