Bad Gateway: Finding Wrong IP's routed to

The Problem: (Bad Gateway)

I can't seem to get any routing to work correctly. I have spent countless hours trying nearly everything I can find and I believe I have tracked down what is going on; however I'm not sure if it is a bug or my configuration. What I see happening is that the IP address being routed to is always on the right network but the wrong IP I believe. So for example in my Swarm Cluster I have the service Code that is routed with the Host code.DragonAuth.com It is reporting back an URL of http://10.0.6.95:10808 but on my cluster the IP for that service is actually 10.0.6.98 not 10.0.6.95. I am providing my Setup and the hardware and the Compose File that I have put all in a single stack. I have had them separated out in different stacks but that was even harder to track down the issue. Before I added the proxy-main network I was getting HTTP Error 504 Gateway Timeout. I am also supplying a loop of the Traefik Logs. To limit the focus Im only going to focus on the CodeServer routing but all of them have the same issue. Any help on this would be very helpful. I am at a loss at this point I feel I have tried every combination of configuration I even tried making sure they were on the same nodes that being Traefik and the CodeService and that didn't seem to help.

Setup:

  • 4 Node Docker Swarm
    • 3 Raspberry Pi 4"s 4 GB Ram
    • 1 Raspberry Pi 3 1 GB Ram
    • Ubuntu 18.0.4
    • Managed With Portainer

Docker Compose File:

version: "3.7"

services:
  traefik:
    image: "traefik:v2.3.5"
    networks:
      - proxy-main
    command:
      --log.level=DEBUG
      --api.insecure=true
      --providers.docker.exposedbydefault=false
      --providers.docker.endpoint=tcp://192.168.1.3:2375
      --providers.docker.swarmMode=true
      --entrypoints.web.address=:80     
      --pilot.token=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx     
    deploy:
      placement:
        constraints:
          - node.role==manager
    ports:
      - "443:443"
      - "8080:8080"
      - "80:80"
    volumes:      
      - "/var/run/docker.sock:/var/run/docker.sock:ro"

  whoami:
    image: "traefik/whoami"
    networks:
      - proxy-main
    depends_on:
      - traefik
    deploy:
      placement:
        constraints:
          - node.role==manager
      labels:
        - traefik.enable=true
        - traefik.docker.lbswarm=true        
        - traefik.http.routers.whoami.rule=Host(`whoami.dragonauth.com`)
        - traefik.http.routers.whoami.entrypoints=web
        - traefik.http.routers.whoami.service=whoami
        - traefik.http.services.whoami.loadbalancer.server.port=8080     
        - traefik.http.services.whoami.loadbalancer.server.scheme=http
        - traefik.docker.network=proxy-main
  
  code:
    image: codercom/code-server:latest
    depends_on:      
      - auth
      - traefik      
    networks:
      - proxy-main
    ports:
      - "10808:8080"
    volumes:
      - codeconfig:/home/coder/.config
      - codedata:/home/coder/project
    deploy:
      labels:
        - traefik.enable=true
        - traefik.docker.lbswarm=true        
        - traefik.http.routers.codeserver.rule=Host(`code.dragonauth.com`)
        - traefik.http.routers.codeserver.entrypoints=web
        - traefik.http.routers.codeserver.service=codeserverservice
        - traefik.http.services.codeserverservice.loadbalancer.server.port=10808
        - traefik.http.services.codeserverservice.loadbalancer.server.scheme=http    
        - traefik.docker.network=proxy-main
      replicas: 1
      update_config:
        parallelism: 1
        delay: 10s
      restart_policy:
        condition: on-failure

  auth:
    image: tmassey/dragonauthentication:latest
    networks:
      - proxy-main
    ports:
      - "5000:80" 
    depends_on:           
      - traefik
      - mariadb
      - mariadb_adminer
    deploy:
      labels:
        - traefik.enable=true
        - traefik.docker.lbswarm=true        
        - traefik.http.routers.dragonauthenticationrouter.rule=Host(`auth.dragonauth.com`)
        - traefik.http.routers.dragonauthenticationrouter.entrypoints=web
        - traefik.http.routers.dragonauthenticationrouter.service=dragonauthenticationservice
        - traefik.http.services.dragonauthenticationservice.loadbalancer.server.port=5000
        - traefik.http.services.dragonauthenticationservice.loadbalancer.server.scheme=http  
        - traefik.docker.network=proxy-main
      replicas: 1
      update_config:
        parallelism: 1
        delay: 10s
      restart_policy:
        condition: on-failure

  web:
    image: tmassey/egsweb:latest   
    networks:
      - proxy-main
    ports:
      - "8889:80"
    depends_on:
      - postgres
      - auth
      - traefik
      - mariadb
      - mariadb_adminer
    deploy:     
      labels:
        - traefik.enable=true
        - traefik.docker.lbswarm=true        
        - traefik.http.routers.egswebrouter.rule=Host(`www.dragonauth.com`)
        - traefik.http.routers.egswebrouter.entrypoints=web
        - traefik.http.routers.egswebrouter.service=egswebservice
        - traefik.http.services.egswebservice.loadbalancer.server.port=8089
        - traefik.http.services.egswebservice.loadbalancer.server.scheme=http   
        - traefik.docker.network=proxy-main
      replicas: 1
      update_config:
        parallelism: 1
        delay: 10s
      restart_policy:
        condition: on-failure
        
  postgres:
    image: postgres
    volumes:
      - pgdata:/var/lib/postgresql/data
    environment:
      - POSTGRES_USER=xxxxxxxxx
      - POSTGRES_PASSWORD=xxxxxxxxxx
      - POSTGRES_DB=xxxxxxxxxxx
      - PGDATA=/var/lib/postgresql/data
    networks:
      - proxy-main
    ports:
      - "8001:5432"
    deploy:
      replicas: 1
      update_config:
        parallelism: 1
        delay: 10s
      restart_policy:
        condition: on-failure

  mariadb:
    image: mariadb
    restart: always
    volumes:
      - mariadb:/var/lib/mysql
    networks:
      - proxy-main
    ports:
      - 3306:3306
    environment:
      MYSQL_ROOT_PASSWORD: xxxxxxxxxxxxxxxxxxxx

  mariadb_adminer:
    image: adminer
    restart: always
    depends_on:
      - postgres      
      - traefik
      - mariadb          
    networks:
      - proxy-main
    ports:
      - 11800:8080
    deploy:
      labels:
        - traefik.enable=true
        - traefik.docker.lbswarm=true        
        - traefik.http.routers.mariadbrouter.rule=Host(`db.dragonauth.com`)
        - traefik.http.routers.mariadbrouter.entrypoints=web
        - traefik.http.routers.mariadbrouter.service=mariadbservice
        - traefik.http.services.mariadbservice.loadbalancer.server.port=11800
        - traefik.http.services.mariadbservice.loadbalancer.server.scheme=http  
        - traefik.docker.network=proxy-main
networks:
  proxy-main:
    external: true
    
volumes:
  pgdata:
    external: true
  mariadb:
    external: true
  codeconfig:
    external: true
  codedata:
    external: true

Traefik Logs:


time="2020-12-17T16:17:12Z" level=debug msg="vulcand/oxy/roundrobin/rr: begin ServeHttp on request" Request="{\"Method\":\"GET\",\"URL\":{\"Scheme\":\"\",\"Opaque\":\"\",\"User\":null,\"Host\":\"\",\"Path\":\"/\",\"RawPath\":\"\",\"ForceQuery\":false,\"RawQuery\":\"\",\"Fragment\":\"\",\"RawFragment\":\"\"},\"Proto\":\"HTTP/1.1\",\"ProtoMajor\":1,\"ProtoMinor\":1,\"Header\":{\"Accept\":[\"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\"],\"Accept-Encoding\":[\"gzip, deflate\"],\"Accept-Language\":[\"en-US,en;q=0.9\"],\"Cache-Control\":[\"max-age=0\"],\"Connection\":[\"keep-alive\"],\"Upgrade-Insecure-Requests\":[\"1\"],\"User-Agent\":[\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36\"],\"X-Forwarded-Host\":[\"code.dragonauth.com\"],\"X-Forwarded-Port\":[\"80\"],\"X-Forwarded-Proto\":[\"http\"],\"X-Forwarded-Server\":[\"e32ffe1fc1b9\"],\"X-Real-Ip\":[\"10.0.0.2\"]},\"ContentLength\":0,\"TransferEncoding\":null,\"Host\":\"code.dragonauth.com\",\"Form\":null,\"PostForm\":null,\"MultipartForm\":null,\"Trailer\":null,\"RemoteAddr\":\"10.0.0.2:59076\",\"RequestURI\":\"/\",\"TLS\":null}",
time="2020-12-17T16:17:12Z" level=debug msg="vulcand/oxy/roundrobin/rr: Forwarding this request to URL" Request="{\"Method\":\"GET\",\"URL\":{\"Scheme\":\"\",\"Opaque\":\"\",\"User\":null,\"Host\":\"\",\"Path\":\"/\",\"RawPath\":\"\",\"ForceQuery\":false,\"RawQuery\":\"\",\"Fragment\":\"\",\"RawFragment\":\"\"},\"Proto\":\"HTTP/1.1\",\"ProtoMajor\":1,\"ProtoMinor\":1,\"Header\":{\"Accept\":[\"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\"],\"Accept-Encoding\":[\"gzip, deflate\"],\"Accept-Language\":[\"en-US,en;q=0.9\"],\"Cache-Control\":[\"max-age=0\"],\"Connection\":[\"keep-alive\"],\"Upgrade-Insecure-Requests\":[\"1\"],\"User-Agent\":[\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36\"],\"X-Forwarded-Host\":[\"code.dragonauth.com\"],\"X-Forwarded-Port\":[\"80\"],\"X-Forwarded-Proto\":[\"http\"],\"X-Forwarded-Server\":[\"e32ffe1fc1b9\"],\"X-Real-Ip\":[\"10.0.0.2\"]},\"ContentLength\":0,\"TransferEncoding\":null,\"Host\":\"code.dragonauth.com\",\"Form\":null,\"PostForm\":null,\"MultipartForm\":null,\"Trailer\":null,\"RemoteAddr\":\"10.0.0.2:59076\",\"RequestURI\":\"/\",\"TLS\":null}" ForwardURL="http://10.0.6.95:10808",
time="2020-12-17T16:17:12Z" level=debug msg="'502 Bad Gateway' caused by: dial tcp 10.0.6.95:10808: connect: connection refused",
time="2020-12-17T16:17:03Z" level=info msg="Skipping same configuration" providerName=docker,
time="2020-12-17T16:17:03Z" level=debug msg="Configuration received from provider docker: {\"http\":{\"routers\":{\"codeserver\":{\"entryPoints\":[\"web\"],\"service\":\"codeserverservice\",\"rule\":\"Host(`code.dragonauth.com`)\"},\"dragonauthenticationrouter\":{\"entryPoints\":[\"web\"],\"service\":\"dragonauthenticationservice\",\"rule\":\"Host(`auth.dragonauth.com`)\"},\"egswebrouter\":{\"entryPoints\":[\"web\"],\"service\":\"egswebservice\",\"rule\":\"Host(`www.dragonauth.com`)\"},\"mariadbrouter\":{\"entryPoints\":[\"web\"],\"service\":\"mariadbservice\",\"rule\":\"Host(`db.dragonauth.com`)\"},\"whoami\":{\"entryPoints\":[\"web\"],\"service\":\"whoami\",\"rule\":\"Host(`whoami.dragonauth.com`)\"}},\"services\":{\"codeserverservice\":{\"loadBalancer\":{\"servers\":[{\"url\":\"http://10.0.6.95:10808\"}],\"passHostHeader\":true}},\"dragonauthenticationservice\":{\"loadBalancer\":{\"servers\":[{\"url\":\"http://10.0.6.77:5000\"}],\"passHostHeader\":true}},\"egswebservice\":{\"loadBalancer\":{\"servers\":[{\"url\":\"http://10.0.6.80:8089\"}],\"passHostHeader\":true}},\"mariadbservice\":{\"loadBalancer\":{\"servers\":[{\"url\":\"http://10.0.6.87:11800\"}],\"passHostHeader\":true}},\"whoami\":{\"loadBalancer\":{\"servers\":[{\"url\":\"http://10.0.6.93:8080\"}],\"passHostHeader\":true}}}},\"tcp\":{},\"udp\":{}}" providerName=docker,
time="2020-12-17T16:17:03Z" level=debug msg="Filtering disabled container" providerName=docker container=DragonAuthServices-mariadb-z2gxlxhl9fb96nx96q0gj7ojb,
time="2020-12-17T16:17:03Z" level=debug msg="Filtering disabled container" providerName=docker container=DragonAuthServices-postgres-jag6ug62w520e7iwrnri0pkve,
time="2020-12-17T16:17:03Z" level=debug msg="Filtering disabled container" providerName=docker container=Portainer-Agent-agent-coaq8ocvenkzcr8zmr48w9taa,
time="2020-12-17T16:17:03Z" level=debug msg="Filtering disabled container" providerName=docker container=Portainer-Agent-agent-jq3rntfymn7i7f5dhfwkyawtb,
time="2020-12-17T16:17:03Z" level=debug msg="Filtering disabled container" providerName=docker container=Portainer-Agent-agent-yp6mk094kq9brmsb9b8wg6ldu,
time="2020-12-17T16:17:03Z" level=debug msg="Filtering disabled container" providerName=docker container=Portainer-Agent-agent-yufg1n277j322ev986ticl13l,
time="2020-12-17T16:17:03Z" level=debug msg="Filtering disabled container" providerName=docker container=DragonAuthServices-traefik-mrm8bp9vw0m0mtx696j5ojl8f,
time="2020-12-17T16:17:03Z" level=debug msg="Filtering disabled container" providerName=docker container=grafana-kwmi6mazqktd2zvw2pk99nbhu,
time="2020-12-17T16:17:03Z" level=debug msg="Filtering disabled container" providerName=docker container=Prometheus-j659kv88wumq5a67rt696cfuj,
time="2020-12-17T16:17:03Z" level=debug msg="Filtering disabled container" container=portainer-uhn2ceknwfggtou1x4zp63nr3 providerName=docker,
time="2020-12-17T16:17:12Z" level=debug msg="vulcand/oxy/roundrobin/rr: completed ServeHttp on request" Request="{\"Method\":\"GET\",\"URL\":{\"Scheme\":\"\",\"Opaque\":\"\",\"User\":null,\"Host\":\"\",\"Path\":\"/\",\"RawPath\":\"\",\"ForceQuery\":false,\"RawQuery\":\"\",\"Fragment\":\"\",\"RawFragment\":\"\"},\"Proto\":\"HTTP/1.1\",\"ProtoMajor\":1,\"ProtoMinor\":1,\"Header\":{\"Accept\":[\"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\"],\"Accept-Encoding\":[\"gzip, deflate\"],\"Accept-Language\":[\"en-US,en;q=0.9\"],\"Cache-Control\":[\"max-age=0\"],\"Connection\":[\"keep-alive\"],\"Upgrade-Insecure-Requests\":[\"1\"],\"User-Agent\":[\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36\"],\"X-Forwarded-Host\":[\"code.dragonauth.com\"],\"X-Forwarded-Port\":[\"80\"],\"X-Forwarded-Proto\":[\"http\"],\"X-Forwarded-Server\":[\"e32ffe1fc1b9\"],\"X-Real-Ip\":[\"10.0.0.2\"]},\"ContentLength\":0,\"TransferEncoding\":null,\"Host\":\"code.dragonauth.com\",\"Form\":null,\"PostForm\":null,\"MultipartForm\":null,\"Trailer\":null,\"RemoteAddr\":\"10.0.0.2:59076\",\"RequestURI\":\"/\",\"TLS\":null}",
time="2020-12-17T16:17:13Z" level=debug msg="vulcand/oxy/roundrobin/rr: begin ServeHttp on request" Request="{\"Method\":\"GET\",\"URL\":{\"Scheme\":\"\",\"Opaque\":\"\",\"User\":null,\"Host\":\"\",\"Path\":\"/favicon.ico\",\"RawPath\":\"\",\"ForceQuery\":false,\"RawQuery\":\"\",\"Fragment\":\"\",\"RawFragment\":\"\"},\"Proto\":\"HTTP/1.1\",\"ProtoMajor\":1,\"ProtoMinor\":1,\"Header\":{\"Accept\":[\"image/avif,image/webp,image/apng,image/*,*/*;q=0.8\"],\"Accept-Encoding\":[\"gzip, deflate\"],\"Accept-Language\":[\"en-US,en;q=0.9\"],\"Cache-Control\":[\"no-cache\"],\"Connection\":[\"keep-alive\"],\"Pragma\":[\"no-cache\"],\"Referer\":[\"http://code.dragonauth.com/\"],\"User-Agent\":[\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36\"],\"X-Forwarded-Host\":[\"code.dragonauth.com\"],\"X-Forwarded-Port\":[\"80\"],\"X-Forwarded-Proto\":[\"http\"],\"X-Forwarded-Server\":[\"e32ffe1fc1b9\"],\"X-Real-Ip\":[\"10.0.0.2\"]},\"ContentLength\":0,\"TransferEncoding\":null,\"Host\":\"code.dragonauth.com\",\"Form\":null,\"PostForm\":null,\"MultipartForm\":null,\"Trailer\":null,\"RemoteAddr\":\"10.0.0.2:59076\",\"RequestURI\":\"/favicon.ico\",\"TLS\":null}",
time="2020-12-17T16:17:13Z" level=debug msg="vulcand/oxy/roundrobin/rr: Forwarding this request to URL" ForwardURL="http://10.0.6.95:10808" Request="{\"Method\":\"GET\",\"URL\":{\"Scheme\":\"\",\"Opaque\":\"\",\"User\":null,\"Host\":\"\",\"Path\":\"/favicon.ico\",\"RawPath\":\"\",\"ForceQuery\":false,\"RawQuery\":\"\",\"Fragment\":\"\",\"RawFragment\":\"\"},\"Proto\":\"HTTP/1.1\",\"ProtoMajor\":1,\"ProtoMinor\":1,\"Header\":{\"Accept\":[\"image/avif,image/webp,image/apng,image/*,*/*;q=0.8\"],\"Accept-Encoding\":[\"gzip, deflate\"],\"Accept-Language\":[\"en-US,en;q=0.9\"],\"Cache-Control\":[\"no-cache\"],\"Connection\":[\"keep-alive\"],\"Pragma\":[\"no-cache\"],\"Referer\":[\"http://code.dragonauth.com/\"],\"User-Agent\":[\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36\"],\"X-Forwarded-Host\":[\"code.dragonauth.com\"],\"X-Forwarded-Port\":[\"80\"],\"X-Forwarded-Proto\":[\"http\"],\"X-Forwarded-Server\":[\"e32ffe1fc1b9\"],\"X-Real-Ip\":[\"10.0.0.2\"]},\"ContentLength\":0,\"TransferEncoding\":null,\"Host\":\"code.dragonauth.com\",\"Form\":null,\"PostForm\":null,\"MultipartForm\":null,\"Trailer\":null,\"RemoteAddr\":\"10.0.0.2:59076\",\"RequestURI\":\"/favicon.ico\",\"TLS\":null}",
time="2020-12-17T16:17:13Z" level=debug msg="vulcand/oxy/roundrobin/rr: completed ServeHttp on request" Request="{\"Method\":\"GET\",\"URL\":{\"Scheme\":\"\",\"Opaque\":\"\",\"User\":null,\"Host\":\"\",\"Path\":\"/favicon.ico\",\"RawPath\":\"\",\"ForceQuery\":false,\"RawQuery\":\"\",\"Fragment\":\"\",\"RawFragment\":\"\"},\"Proto\":\"HTTP/1.1\",\"ProtoMajor\":1,\"ProtoMinor\":1,\"Header\":{\"Accept\":[\"image/avif,image/webp,image/apng,image/*,*/*;q=0.8\"],\"Accept-Encoding\":[\"gzip, deflate\"],\"Accept-Language\":[\"en-US,en;q=0.9\"],\"Cache-Control\":[\"no-cache\"],\"Connection\":[\"keep-alive\"],\"Pragma\":[\"no-cache\"],\"Referer\":[\"http://code.dragonauth.com/\"],\"User-Agent\":[\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36\"],\"X-Forwarded-Host\":[\"code.dragonauth.com\"],\"X-Forwarded-Port\":[\"80\"],\"X-Forwarded-Proto\":[\"http\"],\"X-Forwarded-Server\":[\"e32ffe1fc1b9\"],\"X-Real-Ip\":[\"10.0.0.2\"]},\"ContentLength\":0,\"TransferEncoding\":null,\"Host\":\"code.dragonauth.com\",\"Form\":null,\"PostForm\":null,\"MultipartForm\":null,\"Trailer\":null,\"RemoteAddr\":\"10.0.0.2:59076\",\"RequestURI\":\"/favicon.ico\",\"TLS\":null}",
time="2020-12-17T16:17:13Z" level=debug msg="'502 Bad Gateway' caused by: dial tcp 10.0.6.95:10808: connect: connection refused",
time="2020-12-17T16:17:18Z" level=debug msg="Filtering disabled container" providerName=docker container=DragonAuthServices-mariadb-z2gxlxhl9fb96nx96q0gj7ojb,
time="2020-12-17T16:17:18Z" level=debug msg="Filtering disabled container" providerName=docker container=DragonAuthServices-postgres-jag6ug62w520e7iwrnri0pkve,
time="2020-12-17T16:17:18Z" level=debug msg="Filtering disabled container" providerName=docker container=Portainer-Agent-agent-coaq8ocvenkzcr8zmr48w9taa,
time="2020-12-17T16:17:18Z" level=debug msg="Filtering disabled container" providerName=docker container=Portainer-Agent-agent-jq3rntfymn7i7f5dhfwkyawtb,
time="2020-12-17T16:17:18Z" level=debug msg="Filtering disabled container" providerName=docker container=Portainer-Agent-agent-yp6mk094kq9brmsb9b8wg6ldu,
time="2020-12-17T16:17:18Z" level=debug msg="Filtering disabled container" providerName=docker container=Portainer-Agent-agent-yufg1n277j322ev986ticl13l,
time="2020-12-17T16:17:18Z" level=debug msg="Filtering disabled container" providerName=docker container=DragonAuthServices-traefik-mrm8bp9vw0m0mtx696j5ojl8f,
time="2020-12-17T16:17:18Z" level=debug msg="Filtering disabled container" container=grafana-kwmi6mazqktd2zvw2pk99nbhu providerName=docker,
time="2020-12-17T16:17:18Z" level=debug msg="Filtering disabled container" providerName=docker container=Prometheus-j659kv88wumq5a67rt696cfuj,
time="2020-12-17T16:17:18Z" level=debug msg="Filtering disabled container" providerName=docker container=portainer-uhn2ceknwfggtou1x4zp63nr3,
time="2020-12-17T16:17:18Z" level=debug msg="Configuration received from provider docker: {\"http\":{\"routers\":{\"codeserver\":{\"entryPoints\":[\"web\"],\"service\":\"codeserverservice\",\"rule\":\"Host(`code.dragonauth.com`)\"},\"dragonauthenticationrouter\":{\"entryPoints\":[\"web\"],\"service\":\"dragonauthenticationservice\",\"rule\":\"Host(`auth.dragonauth.com`)\"},\"egswebrouter\":{\"entryPoints\":[\"web\"],\"service\":\"egswebservice\",\"rule\":\"Host(`www.dragonauth.com`)\"},\"mariadbrouter\":{\"entryPoints\":[\"web\"],\"service\":\"mariadbservice\",\"rule\":\"Host(`db.dragonauth.com`)\"},\"whoami\":{\"entryPoints\":[\"web\"],\"service\":\"whoami\",\"rule\":\"Host(`whoami.dragonauth.com`)\"}},\"services\":{\"codeserverservice\":{\"loadBalancer\":{\"servers\":[{\"url\":\"http://10.0.6.95:10808\"}],\"passHostHeader\":true}},\"dragonauthenticationservice\":{\"loadBalancer\":{\"servers\":[{\"url\":\"http://10.0.6.77:5000\"}],\"passHostHeader\":true}},\"egswebservice\":{\"loadBalancer\":{\"servers\":[{\"url\":\"http://10.0.6.80:8089\"}],\"passHostHeader\":true}},\"mariadbservice\":{\"loadBalancer\":{\"servers\":[{\"url\":\"http://10.0.6.87:11800\"}],\"passHostHeader\":true}},\"whoami\":{\"loadBalancer\":{\"servers\":[{\"url\":\"http://10.0.6.93:8080\"}],\"passHostHeader\":true}}}},\"tcp\":{},\"udp\":{}}" providerName=docker,
time="2020-12-17T16:17:18Z" level=info msg="Skipping same configuration" providerName=docker,
time="2020-12-17T16:17:19Z" level=debug msg="Send to pilot: 2020-12-17 16:17:19.167337226 +0000 UTC m=+64801.450480433"

Traefik Service View:

Docker Container inspect showing Network IP for CodeService:

{
    "AppArmorProfile": "docker-default",
    "Args": [
        "--bind-addr",
        "0.0.0.0:8080",
        "."
    ],
    "Config": {
        "AttachStderr": false,
        "AttachStdin": false,
        "AttachStdout": false,
        "Cmd": null,
        "Domainname": "",
        "Entrypoint": [
            "/usr/bin/entrypoint.sh",
            "--bind-addr",
            "0.0.0.0:8080",
            "."
        ],
        "Env": [
            "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
            "LANG=en_US.UTF-8",
            "SHELL=/bin/bash",
            "USER=coder"
        ],
        "ExposedPorts": {
            "8080/tcp": {}
        },
        "Hostname": "dd0f461b1dc3",
        "Image": "codercom/code-server:latest@sha256:f9c53af59ab3582dfd505e31014608afde4b8588f33ab393f1aa10e02746dd23",
        "Labels": {
            "com.docker.stack.namespace": "DragonAuthServices",
            "com.docker.swarm.node.id": "y0dvs4i712ock35x8ryf5fir7",
            "com.docker.swarm.service.id": "giubddv0kui1377frhvouq4wc",
            "com.docker.swarm.service.name": "DragonAuthServices_code",
            "com.docker.swarm.task": "",
            "com.docker.swarm.task.id": "wbh5k5h97dxw7lots21ngiz45",
            "com.docker.swarm.task.name": "DragonAuthServices_code.1.wbh5k5h97dxw7lots21ngiz45"
        },
        "OnBuild": null,
        "OpenStdin": false,
        "StdinOnce": false,
        "Tty": false,
        "User": "1000",
        "Volumes": null,
        "WorkingDir": "/home/coder"
    },
    "Created": "2020-12-16T22:17:24.718213262Z",
    "Driver": "overlay2",
    "ExecIDs": null,
    "GraphDriver": {
        "Data": {
            "LowerDir": "/var/lib/docker/overlay2/f580c11a0a926078e36fe3595a1c512582d801490ab42978f356c5753c66f0c8-init/diff:/var/lib/docker/overlay2/1bfa6af528366f7792c9ac5b67ce4a2ad115be2b97180e0f098ceb3a6bc8a22d/diff:/var/lib/docker/overlay2/29b612c968eb84ebdbff9ecd57ad41e8c7060ec9994ced47e379f8a2acc89a28/diff:/var/lib/docker/overlay2/d6760ae8b71982ce5002112ad2f7459b326e13a37627065c143f45899592b2b9/diff:/var/lib/docker/overlay2/585e51dfedfabbd10fb65d7102c0975cc23a87a2751a6bc403fef6f4cb746473/diff:/var/lib/docker/overlay2/978d5ab70d47953e9134e0967c826d7b5e900511d8f446c5fe61ad23f6fc206c/diff:/var/lib/docker/overlay2/5770ce8c32f45148ddf486a772ccbd13ba6cb156c1bfae5172dba968bf0b2ccb/diff:/var/lib/docker/overlay2/cbd12e6218ebfe62cf9797d334fbd18fba12fb00b6480a442554c78223a08f4f/diff:/var/lib/docker/overlay2/d08a71276ea72bd216baefd93a705126dd7584903cb860829643fe98923204c8/diff:/var/lib/docker/overlay2/5e86ffefbe56d0d7580e8e8942d2381adf3ce50edc564c35fd5346e9ac8f2250/diff",
            "MergedDir": "/var/lib/docker/overlay2/f580c11a0a926078e36fe3595a1c512582d801490ab42978f356c5753c66f0c8/merged",
            "UpperDir": "/var/lib/docker/overlay2/f580c11a0a926078e36fe3595a1c512582d801490ab42978f356c5753c66f0c8/diff",
            "WorkDir": "/var/lib/docker/overlay2/f580c11a0a926078e36fe3595a1c512582d801490ab42978f356c5753c66f0c8/work"
        },
        "Name": "overlay2"
    },
    "HostConfig": {
        "AutoRemove": false,
        "Binds": null,
        "BlkioDeviceReadBps": null,
        "BlkioDeviceReadIOps": null,
        "BlkioDeviceWriteBps": null,
        "BlkioDeviceWriteIOps": null,
        "BlkioWeight": 0,
        "BlkioWeightDevice": null,
        "CapAdd": null,
        "CapDrop": null,
        "Capabilities": null,
        "Cgroup": "",
        "CgroupParent": "",
        "ConsoleSize": [
            0,
            0
        ],
        "ContainerIDFile": "",
        "CpuCount": 0,
        "CpuPercent": 0,
        "CpuPeriod": 0,
        "CpuQuota": 0,
        "CpuRealtimePeriod": 0,
        "CpuRealtimeRuntime": 0,
        "CpuShares": 0,
        "CpusetCpus": "",
        "CpusetMems": "",
        "DeviceCgroupRules": null,
        "DeviceRequests": null,
        "Devices": null,
        "Dns": null,
        "DnsOptions": null,
        "DnsSearch": null,
        "ExtraHosts": null,
        "GroupAdd": null,
        "IOMaximumBandwidth": 0,
        "IOMaximumIOps": 0,
        "IpcMode": "private",
        "Isolation": "default",
        "KernelMemory": 0,
        "KernelMemoryTCP": 0,
        "Links": null,
        "LogConfig": {
            "Config": {},
            "Type": "json-file"
        },
        "MaskedPaths": [
            "/proc/asound",
            "/proc/acpi",
            "/proc/kcore",
            "/proc/keys",
            "/proc/latency_stats",
            "/proc/timer_list",
            "/proc/timer_stats",
            "/proc/sched_debug",
            "/proc/scsi",
            "/sys/firmware"
        ],
        "Memory": 0,
        "MemoryReservation": 0,
        "MemorySwap": 0,
        "MemorySwappiness": null,
        "Mounts": [
            {
                "Source": "gitlabconfig",
                "Target": "/home/coder/.config",
                "Type": "volume",
                "VolumeOptions": {}
            },
            {
                "Source": "gitlabdata",
                "Target": "/home/coder/project",
                "Type": "volume",
                "VolumeOptions": {}
            }
        ],
        "NanoCpus": 0,
        "NetworkMode": "default",
        "OomKillDisable": null,
        "OomScoreAdj": 0,
        "PidMode": "",
        "PidsLimit": null,
        "PortBindings": {},
        "Privileged": false,
        "PublishAllPorts": false,
        "ReadonlyPaths": [
            "/proc/bus",
            "/proc/fs",
            "/proc/irq",
            "/proc/sys",
            "/proc/sysrq-trigger"
        ],
        "ReadonlyRootfs": false,
        "RestartPolicy": {
            "MaximumRetryCount": 0,
            "Name": ""
        },
        "Runtime": "runc",
        "SecurityOpt": null,
        "ShmSize": 67108864,
        "UTSMode": "",
        "Ulimits": null,
        "UsernsMode": "",
        "VolumeDriver": "",
        "VolumesFrom": null
    },
    "HostnamePath": "/var/lib/docker/containers/dd0f461b1dc390e82f3fde0b91f001a24d1ccd7b42d62f411a993a44099b139f/hostname",
    "HostsPath": "/var/lib/docker/containers/dd0f461b1dc390e82f3fde0b91f001a24d1ccd7b42d62f411a993a44099b139f/hosts",
    "Id": "dd0f461b1dc390e82f3fde0b91f001a24d1ccd7b42d62f411a993a44099b139f",
    "Image": "sha256:7426a285c60047b0ee1a6079aaca8c80f51b200bc5e542b39a41000bf86bddf1",
    "LogPath": "/var/lib/docker/containers/dd0f461b1dc390e82f3fde0b91f001a24d1ccd7b42d62f411a993a44099b139f/dd0f461b1dc390e82f3fde0b91f001a24d1ccd7b42d62f411a993a44099b139f-json.log",
    "MountLabel": "",
    "Mounts": [
        {
            "Destination": "/home/coder/project",
            "Driver": "local",
            "Mode": "z",
            "Name": "gitlabdata",
            "Propagation": "",
            "RW": true,
            "Source": "/var/lib/docker/volumes/gitlabdata/_data",
            "Type": "volume"
        },
        {
            "Destination": "/home/coder/.config",
            "Driver": "local",
            "Mode": "z",
            "Name": "gitlabconfig",
            "Propagation": "",
            "RW": true,
            "Source": "/var/lib/docker/volumes/gitlabconfig/_data",
            "Type": "volume"
        }
    ],
    "Name": "/DragonAuthServices_code.1.wbh5k5h97dxw7lots21ngiz45",
    "NetworkSettings": {
        "Bridge": "",
        "EndpointID": "",
        "Gateway": "",
        "GlobalIPv6Address": "",
        "GlobalIPv6PrefixLen": 0,
        "HairpinMode": false,
        "IPAddress": "",
        "IPPrefixLen": 0,
        "IPv6Gateway": "",
        "LinkLocalIPv6Address": "",
        "LinkLocalIPv6PrefixLen": 0,
        "MacAddress": "",
        "Networks": {
            "ingress": {
                "Aliases": [
                    "dd0f461b1dc3"
                ],
                "DriverOpts": null,
                "EndpointID": "7aa86fb7e1a9e7b2b73eb001ab258f573bfc18886c2818c99f635370c5d6049b",
                "Gateway": "",
                "GlobalIPv6Address": "",
                "GlobalIPv6PrefixLen": 0,
                "IPAMConfig": {
                    "IPv4Address": "10.0.0.209"
                },
                "IPAddress": "10.0.0.209",
                "IPPrefixLen": 24,
                "IPv6Gateway": "",
                "Links": null,
                "MacAddress": "02:42:0a:00:00:d1",
                "NetworkID": "8nofa0qwekvh238q1ksdm8ztn"
            },
            "proxy-main": {
                "Aliases": [
                    "dd0f461b1dc3"
                ],
                "DriverOpts": null,
                "EndpointID": "a59c55e58317e86f20f1b5028ac061874628344b25d9ce8033836a1f059d9d26",
                "Gateway": "",
                "GlobalIPv6Address": "",
                "GlobalIPv6PrefixLen": 0,
                "IPAMConfig": {
                    "IPv4Address": "10.0.6.98"
                },
                "IPAddress": "10.0.6.98",
                "IPPrefixLen": 24,
                "IPv6Gateway": "",
                "Links": null,
                "MacAddress": "02:42:0a:00:06:62",
                "NetworkID": "q8km60rhj5kyk1l8zc4bb6ceh"
            }
        },
        "Ports": {
            "8080/tcp": null
        },
        "SandboxID": "1fdbbf791f57505cf5611d56f228e9133216b2e3c3c544a40d5c391e17c86076",
        "SandboxKey": "/var/run/docker/netns/1fdbbf791f57",
        "SecondaryIPAddresses": null,
        "SecondaryIPv6Addresses": null
    },
    "Path": "/usr/bin/entrypoint.sh",
    "Platform": "linux",
    "Portainer": {
        "ResourceControl": {
            "Id": 1,
            "ResourceId": "DragonAuthServices",
            "SubResourceIds": [],
            "Type": 6,
            "UserAccesses": [],
            "TeamAccesses": [],
            "Public": false,
            "AdministratorsOnly": true,
            "System": false
        }
    },
    "ProcessLabel": "",
    "ResolvConfPath": "/var/lib/docker/containers/dd0f461b1dc390e82f3fde0b91f001a24d1ccd7b42d62f411a993a44099b139f/resolv.conf",
    "RestartCount": 0,
    "State": {
        "Dead": false,
        "Error": "",
        "ExitCode": 0,
        "FinishedAt": "0001-01-01T00:00:00Z",
        "OOMKilled": false,
        "Paused": false,
        "Pid": 18217,
        "Restarting": false,
        "Running": true,
        "StartedAt": "2020-12-16T22:17:32.331772184Z",
        "Status": "running"
    }
}