This is a hard one but it would be great to solve it and my configuration would awesome!
I have two docker-compose projects: no 1. contains configuration for traefik, no 2. contains my-service that has http://my-domain.tld as parameter.
The goal is to call (let's say ping) http://my-domain.tld from my-service and get through to traefik. Both services now are in the same network but I need somehow to pass configuration that http://my-domain.tld points to traefik.
# Project no 1. configuration for traefik that I want to access from no 2. project
version: '3.7'
services:
  traefik:
    container_name: traefik
    networks:
      - default
networks:
  default:
    name: traefik
# Project no 2.
version: '3.7'
services:
  my-service:
    environment:
      - URL=http://my-domain.tld
    networks:
      - traefik
networks:
  traefik:
    external:
      name: traefik
Tried solutions:
Variant a)
Does not work. When I call http://my-domain.tld it is directed to first node in traefik network (in my case it was my-service itself). Difference from original: aliases in network section.
# Project no 2.
version: '3.7'
services:
  my-service:
    environment:
      - URL=http://my-domain.tld
    networks:
      traefik:
        aliases:
          - ${MERCURE_DOMAIN}
networks:
  traefik:
    external:
      name: traefik
Variant b)
Fails because traefik that service depends on is not in the project/network: Service 'my-service' depends on service 'traefik' which is undefined. Differences from original: depends_on and extra_hosts.
# Project no 2.
version: '3.7'
services:
  my-service:
    environment:
      - URL=http://my-domain.tld
    networks:
      - traefik
    depends_on:
      - traefik
    extra_hosts:
      - http://my-domain.tld:traefik
networks:
  traefik:
    external:
      name: traefik
Variant c)
Works! However keep in mind that I had to hardcode IP address of traefik service. This is not the worst scenario but it makes project less portable and I want to avoid it. Differences from original: network configuration for no 1. project, static ip for traefik service and extra_hosts for no 2. project.
# Project no 1. configuration for traefik that I want to access from next project
version: '3.7'
services:
  traefik:
    container_name: traefik
    networks:
      default:
        ipv4_address: 172.133.239.10
networks:
  default:
    name: traefik
    driver: bridge
      ipam:
        driver: default
        config:
          - subnet: 172.133.239.0/24
# Project no 2.
version: '3.7'
services:
  my-service:
    environment:
      - URL=http://my-domain.tld
    networks:
      - traefik
    extra_hosts:
          - http://my-domain.tld:172.133.239.10
networks:
  traefik:
    external:
      name: traefik
Variant d)
Is waiting for your suggestion how to make this perfect!
EDIT: rewrote docker-compose configuration to separate cases to show what I have tried and accomplished because there were some confusion about it.
 
    