version: "3.3" services: api: build: context: . image: redplateaus env_file: docker-compose.env environment: SERVICES: api PORT: 3000 labels: - "traefik.enable=true" - "traefik.http.routers.api-gw.rule=PathPrefix(`/`)" - "traefik.http.services.api-gw.loadbalancer.server.port=3000" networks: - internal greeter: build: context: . image: redplateaus env_file: docker-compose.env environment: SERVICES: greeter networks: - internal products: build: context: . image: redplateaus env_file: docker-compose.env environment: SERVICES: products depends_on: - mongo networks: - internal mongo: image: mongo:4 volumes: - data:/data/db networks: - internal traefik: image: traefik:v2.1 command: - "--api.insecure=true" # Don't do that in production! - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" ports: - 3000:80 - 3001:8080 volumes: - /var/run/docker.sock:/var/run/docker.sock:ro networks: - internal - default networks: internal: volumes: data: