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"
}
}