8

Are the consul and docker swarm configuration backends compatible?

My requirement is that I need to start N traefik containers as a docker service, where they get their dynamic frontends/backends via docker swarm but I also need all N of the traefik containers to use a shared ACME config (i.e. sourced from consul).

I'd like it so that Frontends/backends info should come from the docker swarm, while the ACME config should come from consul. As far as any other static traefik configs, i'm fine if it comes from a static file, but this really won't work for the ACME.json as a file via a volumne because how would locks for writes be managed? The only option I see is the consul KV store for that.

The issue i see is that this kind of setup is not possible?

Traefik version v1.3.0 built on 2017-05-31_05:48:42PM

Uploaded my TOML config into consul KV which looks like this: (stored under "traefik-stage" root in consul KV)

defaultEntryPoints = ["http", "https"]

debug=true
logLevel="DEBUG"
InsecureSkipVerify=true

[web]
address = ":8080"

[web.statistics]

[entryPoints]
  [entryPoints.http]
  address = ":80"
  [entryPoints.https]
  address = ":443"
    [entryPoints.https.tls]

[acme]
acmeLogging=true
onDemand=true
entryPoint="https"
OnHostRule=true
caServer="https://acme-v01.api.letsencrypt.org/directory"
email="[email protected]"
storage="traefik-stage/acme/account"

# TRIED BOTH WITH AND WITHOUT
# THE DOCKER CONFIG LOADED INTO CONSUL
# AND AS command line flags.... to no avail
[docker]
swarmmode=true
domain="traefik"
watch=true

[[acme.domains]]
   main = "local1.com"
[[acme.domains]]
   main = "myapp1.my-domain.com"
   sans = ["myapp1-stage.my-domain.com"]
[[acme.domains]]
   main = "myapp2.my-domain.com"
   sans = ["myapp2-stage.my-domain.com"]

Started traefik with:

docker service create \
--name traefik \
--constraint=node.role==manager \
--publish 80:80 \
--publish 8080:8080 \
--publish 443:443 \
--mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \
--network my-net \
-e "CONSUL_HTTP_TOKEN=xxxxxx" \
traefik  \
--consul \
--consul.endpoint=my-consul.my-domain.com:8500 \
--consul.watch=true \
--consul.prefix="traefik-stage"

NOTE! tried both with and without the docker flags in either consul or as command line flags to no avail:

--docker \
--docker.swarmmode \
--docker.domain=traefik \
--docker.watch 

Next started my N other docker services that I want traefik to proxy, each started w/ the relevant flags as such

...
--publish :9000 
--label traefik.protocol=https 
--label traefik.port=9000 
--label traefik.frontend.rule='Host:myapp1.my-domain.com,myapp1-stage.my-domain.com' 
--label traefik.docker.network=my-net
--network my-net
...

Note this above setup (with traefik config fully in TOML file, not in consul) works fine

What I you expect to see?

When I go to http://localhost:8080/dashboard/#/ I see my 2 frontends/backends appropriately discovered via traefik and setup properly as they work w/out consul

What did I see instead?

Nothing in the UI, however the logs show evidence that traefik is indeed getting the frontend/backend info from docker and wiring it up. But nothing shows in the UI nor does any of the actual routing work for those hosts.

Log output

2017-06-09T16:22:38.049816971Z time="2017-06-09T16:22:38Z" level=info msg="Traefik version v1.3.0 built on 2017-05-31_05:48:42PM"
2017-06-09T16:22:38.056705032Z time="2017-06-09T16:22:38Z" level=debug msg="Global configuration loaded {"GraceTimeOut":10000000000,"Debug":true,"CheckNewVersion":true,"AccessLogsFile":"","TraefikLogsFile":"","LogLevel":"DEBUG","EntryPoints":{"http":{"Network":"","Address":":80","TLS":null,"Redirect":null,"Auth":null,"Compress":false},"https":{"Network":"","Address":":443","TLS":{"MinVersion":"","CipherSuites":null,"Certificates":null,"ClientCAFiles":null},"Redirect":null,"Auth":null,"Compress":false}},"Cluster":{"Node":"1ae7b5d5-9382-4a67-b608-1e39e6fba1e5","Store":{"Store":{},"Prefix":"traefik-stage"}},"Constraints":[],"ACME":{"Email":"[email protected]","Domains":[{"Main":"local1.com","SANs":null},{"Main":"myapp1.my-domain.com","SANs":["myapp1-stage.my-domain.com"]},{"Main":"myapp2.my-domain.com","SANs":["myapp2-stage.my-domain.com"]}],"Storage":"","StorageFile":"/var/run/acme.json","OnDemand":true,"OnHostRule":true,"CAServer":"https://acme-v01.api.letsencrypt.org/directory","EntryPoint":"https","DNSProvider":"","DelayDontCheckDNS":0,"ACMELogging":true,"TLSConfig":null},"DefaultEntryPoints":["http","https"],"ProvidersThrottleDuration":2000000000,"MaxIdleConnsPerHost":200,"IdleTimeout":180000000000,"InsecureSkipVerify":true,"Retry":null,"HealthCheck":{"Interval":30000000000},"Docker":{"Watch":true,"Filename":"","Constraints":null,"Endpoint":"unix:///var/run/docker.sock","Domain":"traefik","TLS":null,"ExposedByDefault":true,"UseBindPortIP":false,"SwarmMode":true},"File":null,"Web":{"Address":":8080","CertFile":"","KeyFile":"","ReadOnly":false,"Statistics":{"RecentErrors":10},"Metrics":null,"Path":"","Auth":null},"Marathon":null,"Consul":{"Watch":true,"Filename":"","Constraints":[],"Endpoint":"my-consul.my-domain.com:8500","Prefix":"traefik-stage","TLS":null,"Username":"","Password":""},"ConsulCatalog":null,"Etcd":null,"Zookeeper":null,"Boltdb":null,"Kubernetes":null,"Mesos":null,"Eureka":null,"ECS":null,"Rancher":null,"DynamoDB":null}"
2017-06-09T16:22:38.056793712Z time="2017-06-09T16:22:38Z" level=info msg="Preparing server https &{Network: Address::443 TLS:0xc420065260 Redirect:<nil> Auth:<nil> Compress:false}"
2017-06-09T16:22:38.303980631Z time="2017-06-09T16:22:38Z" level=warning msg="ACME.StorageFile is deprecated, use ACME.Storage instead"
2017-06-09T16:22:38.304036333Z time="2017-06-09T16:22:38Z" level=info msg="Preparing server http &{Network: Address::80 TLS:<nil> Redirect:<nil> Auth:<nil> Compress:false}"
2017-06-09T16:22:38.304047560Z time="2017-06-09T16:22:38Z" level=info msg="Starting provider *docker.Provider {"Watch":true,"Filename":"","Constraints":null,"Endpoint":"unix:///var/run/docker.sock","Domain":"traefik","TLS":null,"ExposedByDefault":true,"UseBindPortIP":false,"SwarmMode":true}"
2017-06-09T16:22:38.304056909Z time="2017-06-09T16:22:38Z" level=info msg="Starting provider *server.WebProvider {"Address":":8080","CertFile":"","KeyFile":"","ReadOnly":false,"Statistics":{"RecentErrors":10},"Metrics":null,"Path":"","Auth":null}"
2017-06-09T16:22:38.304063376Z time="2017-06-09T16:22:38Z" level=info msg="Starting server on :443"
2017-06-09T16:22:38.304067569Z time="2017-06-09T16:22:38Z" level=info msg="Starting provider *consul.Provider {"Watch":true,"Filename":"","Constraints":[],"Endpoint":"myconsul.my-domain.com:8500","Prefix":"traefik-stage","TLS":null,"Username":"","Password":""}"
2017-06-09T16:22:38.304086381Z time="2017-06-09T16:22:38Z" level=info msg="Starting server on :80"
2017-06-09T16:22:38.304091503Z time="2017-06-09T16:22:38Z" level=debug msg="Node 1ae7b5d5-9382-4a67-b608-1e39e6fba1e5 running for election"
2017-06-09T16:22:38.304095943Z time="2017-06-09T16:22:38Z" level=info msg="Node 1ae7b5d5-9382-4a67-b608-1e39e6fba1e5 elected slave ♝"
2017-06-09T16:22:38.305221709Z time="2017-06-09T16:22:38Z" level=debug msg="Provider connection established with docker 17.03.1-ce (API 1.27)"
2017-06-09T16:22:38.316537086Z time="2017-06-09T16:22:38Z" level=debug msg="Filtering container without port and no traefik.port label traefik.1"
2017-06-09T16:22:38.318032177Z time="2017-06-09T16:22:38Z" level=debug msg="Validation of load balancer method for backend backend-ddd-myapp1-stage-2-2-0-2-0-0-0-ssl failed: invalid load-balancing method ''. Using default method wrr."
2017-06-09T16:22:38.318079837Z time="2017-06-09T16:22:38Z" level=debug msg="Validation of load balancer method for backend backend-ddd-myapp2-stage-2-2-0-2-0-0-0-ssl failed: invalid load-balancing method ''. Using default method wrr."
2017-06-09T16:22:38.318543316Z time="2017-06-09T16:22:38Z" level=debug msg="Configuration received from provider docker: {"backends":{"backend-ddd-myapp1-stage-2-2-0-2-0-0-0-ssl":{"servers":{"server-ddd-myapp1-stage-2-2-0-2-0-0-0-ssl-1":{"url":"https://10.0.3.3:9000","weight":0}},"loadBalancer":{"method":"wrr"}},"backend-ddd-myapp2-stage-2-2-0-2-0-0-0-ssl":{"servers":{"server-ddd-myapp2-stage-2-2-0-2-0-0-0-ssl-1":{"url":"https://10.0.3.7:9000","weight":0}},"loadBalancer":{"method":"wrr"}}},"frontends":{"frontend-Host-myapp1-my-domain-com-myapp1-stage-my-domain-com":{"entryPoints":["http","https"],"backend":"backend-ddd-myapp1-stage-2-2-0-2-0-0-0-ssl","routes":{"route-frontend-Host-myapp1-my-domain-com-myapp1-stage-my-domain-com":{"rule":"Host:myapp1.my-domain.com,myapp1-stage.my-domain.com"}},"passHostHeader":true,"priority":0,"basicAuth":[]},"frontend-Host-myapp2-my-domain-com-myapp2-stage-my-domain-com":{"entryPoints":["http","https"],"backend":"backend-ddd-myapp2-stage-2-2-0-2-0-0-0-ssl","routes":{"route-frontend-Host-myapp2-my-domain-com-myapp2-stage-my-domain-com":{"rule":"Host:myapp2.my-domain.com,myapp2-stage.my-domain.com"}},"passHostHeader":true,"priority":0,"basicAuth":[]}}}"
2017-06-09T16:22:38.318768669Z time="2017-06-09T16:22:38Z" level=debug msg="Last docker config received more than 2s, OK"
2017-06-09T16:22:38.318851649Z time="2017-06-09T16:22:38Z" level=debug msg="Creating frontend frontend-Host-myapp1-my-domain-com-myapp1-stage-my-domain-com"
2017-06-09T16:22:38.318862832Z time="2017-06-09T16:22:38Z" level=debug msg="Wiring frontend frontend-Host-myapp1-my-domain-com-myapp1-stage-my-domain-com to entryPoint http"
2017-06-09T16:22:38.318870901Z time="2017-06-09T16:22:38Z" level=debug msg="Creating route route-frontend-Host-myapp1-my-domain-com-myapp1-stage-my-domain-com Host:myapp1.my-domain.com,myapp1-stage.my-domain.com"
2017-06-09T16:22:38.318885668Z time="2017-06-09T16:22:38Z" level=debug msg="Creating backend backend-ddd-myapp1-stage-2-2-0-2-0-0-0-ssl"
2017-06-09T16:22:38.318890613Z time="2017-06-09T16:22:38Z" level=debug msg="Creating load-balancer wrr"
2017-06-09T16:22:38.318894858Z time="2017-06-09T16:22:38Z" level=debug msg="Creating server server-ddd-myapp1-stage-2-2-0-2-0-0-0-ssl-1 at https://10.0.3.3:9000 with weight 0"
2017-06-09T16:22:38.318899165Z time="2017-06-09T16:22:38Z" level=debug msg="Wiring frontend frontend-Host-myapp1-my-domain-com-myapp1-stage-my-domain-com to entryPoint https"
2017-06-09T16:22:38.318903534Z time="2017-06-09T16:22:38Z" level=debug msg="Creating route route-frontend-Host-myapp1-my-domain-com-myapp1-stage-my-domain-com Host:myapp1.my-domain.com,myapp1-stage.my-domain.com"
2017-06-09T16:22:38.318964111Z time="2017-06-09T16:22:38Z" level=debug msg="Creating backend backend-ddd-myapp1-stage-2-2-0-2-0-0-0-ssl"
2017-06-09T16:22:38.318969668Z time="2017-06-09T16:22:38Z" level=debug msg="Creating load-balancer wrr"
2017-06-09T16:22:38.318974033Z time="2017-06-09T16:22:38Z" level=debug msg="Creating server server-ddd-myapp1-stage-2-2-0-2-0-0-0-ssl-1 at https://10.0.3.3:9000 with weight 0"
2017-06-09T16:22:38.318978435Z time="2017-06-09T16:22:38Z" level=debug msg="Creating frontend frontend-Host-myapp2-my-domain-com-myapp2-stage-my-domain-com"
2017-06-09T16:22:38.318982839Z time="2017-06-09T16:22:38Z" level=debug msg="Wiring frontend frontend-Host-myapp2-my-domain-com-myapp2-stage-my-domain-com to entryPoint http"
2017-06-09T16:22:38.318987264Z time="2017-06-09T16:22:38Z" level=debug msg="Creating route route-frontend-Host-myapp2-my-domain-com-myapp2-stage-my-domain-com Host:myapp2.my-domain.com,myapp2-stage.my-domain.com"
2017-06-09T16:22:38.318991884Z time="2017-06-09T16:22:38Z" level=debug msg="Creating backend backend-ddd-myapp2-stage-2-2-0-2-0-0-0-ssl"
2017-06-09T16:22:38.318996168Z time="2017-06-09T16:22:38Z" level=debug msg="Creating load-balancer wrr"
2017-06-09T16:22:38.319385909Z time="2017-06-09T16:22:38Z" level=debug msg="Creating server server-ddd-myapp2-stage-2-2-0-2-0-0-0-ssl-1 at https://10.0.3.7:9000 with weight 0"
2017-06-09T16:22:38.319427537Z time="2017-06-09T16:22:38Z" level=debug msg="Wiring frontend frontend-Host-myapp2-my-domain-com-myapp2-stage-my-domain-com to entryPoint https"
2017-06-09T16:22:38.319449626Z time="2017-06-09T16:22:38Z" level=debug msg="Creating route route-frontend-Host-myapp2-my-domain-com-myapp2-stage-my-domain-com Host:myapp2.my-domain.com,myapp2-stage.my-domain.com"
2017-06-09T16:22:38.319461465Z time="2017-06-09T16:22:38Z" level=debug msg="Creating backend backend-ddd-myapp2-stage-2-2-0-2-0-0-0-ssl"
2017-06-09T16:22:38.319476110Z time="2017-06-09T16:22:38Z" level=debug msg="Creating load-balancer wrr"
2017-06-09T16:22:38.319484326Z time="2017-06-09T16:22:38Z" level=debug msg="Creating server server-ddd-myapp2-stage-2-2-0-2-0-0-0-ssl-1 at https://10.0.3.7:9000 with weight 0"
2017-06-09T16:22:38.319499644Z time="2017-06-09T16:22:38Z" level=info msg="Server configuration reloaded on :443"
2017-06-09T16:22:38.319505207Z time="2017-06-09T16:22:38Z" level=info msg="Server configuration reloaded on :80"
2017-06-09T16:22:38.617268318Z time="2017-06-09T16:22:38Z" level=debug msg="Cannot get key traefik-stage/alias Key not found in store, setting default traefik-stage"
2017-06-09T16:22:38.735038061Z time="2017-06-09T16:22:38Z" level=info msg="Node 1ae7b5d5-9382-4a67-b608-1e39e6fba1e5 elected leader ♚"
2017-06-09T16:22:38.735155690Z time="2017-06-09T16:22:38Z" level=info msg="Starting ACME renew job..."
2017-06-09T16:22:38.832338566Z time="2017-06-09T16:22:38Z" level=debug msg="Transaction aac18cfa-9e66-44c1-9ca4-0433e6d6e0bc begins"
2017-06-09T16:22:38.832743436Z time="2017-06-09T16:22:38Z" level=debug msg="Configuration received from provider consul: {}"
2017-06-09T16:22:38.832775050Z time="2017-06-09T16:22:38Z" level=debug msg="Last consul config received less than 2s, waiting..."
2017-06-09T16:22:38.922562919Z time="2017-06-09T16:22:38Z" level=debug msg="Cannot get key traefik-stage/alias Key not found in store, setting default traefik-stage"
2017-06-09T16:22:39.079982533Z time="2017-06-09T16:22:39Z" level=debug msg="Configuration received from provider consul: {}"
2017-06-09T16:22:39.080049684Z time="2017-06-09T16:22:39Z" level=debug msg="Last consul config received less than 2s, waiting..."
2017-06-09T16:22:39.103499147Z time="2017-06-09T16:22:39Z" level=error msg="Error calling Leadership listener: failed to acquire lock: Invalid key. Key must not begin with a '/': /var/run/acme.json/lock"
2017-06-09T16:22:39.166044562Z time="2017-06-09T16:22:39Z" level=debug msg="Cannot get key traefik-stage/alias Key not found in store, setting default traefik-stage"
2017-06-09T16:22:39.370791846Z time="2017-06-09T16:22:39Z" level=debug msg="Configuration received from provider consul: {}"
2017-06-09T16:22:39.370938439Z time="2017-06-09T16:22:39Z" level=debug msg="Last consul config received less than 2s, waiting..."
2017-06-09T16:22:41.374581362Z time="2017-06-09T16:22:41Z" level=debug msg="Waited for consul config, OK"
2017-06-09T16:22:41.374643174Z time="2017-06-09T16:22:41Z" level=debug msg="Creating frontend frontend-Host-myapp1-my-domain-com-myapp1-stage-my-domain-com"
2017-06-09T16:22:41.374688194Z time="2017-06-09T16:22:41Z" level=debug msg="Wiring frontend frontend-Host-myapp1-my-domain-com-myapp1-stage-my-domain-com to entryPoint http"
2017-06-09T16:22:41.374695851Z time="2017-06-09T16:22:41Z" level=debug msg="Creating route route-frontend-Host-myapp1-my-domain-com-myapp1-stage-my-domain-com Host:myapp1.my-domain.com,myapp1-stage.my-domain.com"
2017-06-09T16:22:41.374702925Z time="2017-06-09T16:22:41Z" level=debug msg="Creating backend backend-ddd-myapp1-stage-2-2-0-2-0-0-0-ssl"
2017-06-09T16:22:41.374733438Z time="2017-06-09T16:22:41Z" level=debug msg="Creating load-balancer wrr"
2017-06-09T16:22:41.374741833Z time="2017-06-09T16:22:41Z" level=debug msg="Creating server server-ddd-myapp1-stage-2-2-0-2-0-0-0-ssl-1 at https://10.0.3.3:9000 with weight 0"
2017-06-09T16:22:41.374839405Z time="2017-06-09T16:22:41Z" level=debug msg="Wiring frontend frontend-Host-myapp1-my-domain-com-myapp1-stage-my-domain-com to entryPoint https"
2017-06-09T16:22:41.374854017Z time="2017-06-09T16:22:41Z" level=debug msg="Creating route route-frontend-Host-myapp1-my-domain-com-myapp1-stage-my-domain-com Host:myapp1.my-domain.com,myapp1-stage.my-domain.com"
2017-06-09T16:22:41.375226321Z time="2017-06-09T16:22:41Z" level=debug msg="Creating backend backend-ddd-myapp1-stage-2-2-0-2-0-0-0-ssl"
2017-06-09T16:22:41.375243069Z time="2017-06-09T16:22:41Z" level=debug msg="Creating load-balancer wrr"
2017-06-09T16:22:41.375250166Z time="2017-06-09T16:22:41Z" level=debug msg="Creating server server-ddd-myapp1-stage-2-2-0-2-0-0-0-ssl-1 at https://10.0.3.3:9000 with weight 0"
2017-06-09T16:22:41.375256492Z time="2017-06-09T16:22:41Z" level=debug msg="Creating frontend frontend-Host-myapp2-my-domain-com-myapp2-stage-my-domain-com"
2017-06-09T16:22:41.375262419Z time="2017-06-09T16:22:41Z" level=debug msg="Wiring frontend frontend-Host-myapp2-my-domain-com-myapp2-stage-my-domain-com to entryPoint http"
2017-06-09T16:22:41.375272098Z time="2017-06-09T16:22:41Z" level=debug msg="Creating route route-frontend-Host-myapp2-my-domain-com-myapp2-stage-my-domain-com Host:myapp2.my-domain.com,myapp2-stage.my-domain.com"
2017-06-09T16:22:41.375278891Z time="2017-06-09T16:22:41Z" level=debug msg="Creating backend backend-ddd-myapp2-stage-2-2-0-2-0-0-0-ssl"
2017-06-09T16:22:41.375284443Z time="2017-06-09T16:22:41Z" level=debug msg="Creating load-balancer wrr"
2017-06-09T16:22:41.375335382Z time="2017-06-09T16:22:41Z" level=debug msg="Creating server server-ddd-myapp2-stage-2-2-0-2-0-0-0-ssl-1 at https://10.0.3.7:9000 with weight 0"
2017-06-09T16:22:41.375344359Z time="2017-06-09T16:22:41Z" level=debug msg="Wiring frontend frontend-Host-myapp2-my-domain-com-myapp2-stage-my-domain-com to entryPoint https"
2017-06-09T16:22:41.375350512Z time="2017-06-09T16:22:41Z" level=debug msg="Creating route route-frontend-Host-myapp2-my-domain-com-myapp2-stage-my-domain-com Host:myapp2.my-domain.com,myapp2-stage.my-domain.com"
2017-06-09T16:22:41.375356724Z time="2017-06-09T16:22:41Z" level=debug msg="Creating backend backend-ddd-myapp2-stage-2-2-0-2-0-0-0-ssl"
2017-06-09T16:22:41.375362361Z time="2017-06-09T16:22:41Z" level=debug msg="Creating load-balancer wrr"
2017-06-09T16:22:41.375367938Z time="2017-06-09T16:22:41Z" level=debug msg="Creating server server-ddd-myapp2-stage-2-2-0-2-0-0-0-ssl-1 at https://10.0.3.7:9000 with weight 0"
2017-06-09T16:22:41.375373661Z time="2017-06-09T16:22:41Z" level=info msg="Server configuration reloaded on :443"
2017-06-09T16:22:41.375379195Z time="2017-06-09T16:22:41Z" level=info msg="Server configuration reloaded on :80"
2017-06-09T16:22:53.337794486Z time="2017-06-09T16:22:53Z" level=debug msg="Filtering container without port and no traefik.port label traefik.1"
2017-06-09T16:22:53.339047817Z time="2017-06-09T16:22:53Z" level=debug msg="Validation of load balancer method for backend backend-ddd-myapp1-stage-2-2-0-2-0-0-0-ssl failed: invalid load-balancing method ''. Using default method wrr."
2017-06-09T16:22:53.339101405Z time="2017-06-09T16:22:53Z" level=debug msg="Validation of load balancer method for backend backend-ddd-myapp2-stage-2-2-0-2-0-0-0-ssl failed: invalid load-balancing method ''. Using default method wrr."
2017-06-09T16:22:53.339251375Z time="2017-06-09T16:22:53Z" level=debug msg="Configuration received from provider docker: {"backends":{"backend-ddd-myapp1-stage-2-2-0-2-0-0-0-ssl":{"servers":{"server-ddd-myapp1-stage-2-2-0-2-0-0-0-ssl-1":{"url":"https://10.0.3.3:9000","weight":0}},"loadBalancer":{"method":"wrr"}},"backend-ddd-myapp2-stage-2-2-0-2-0-0-0-ssl":{"servers":{"server-ddd-myapp2-stage-2-2-0-2-0-0-0-ssl-1":{"url":"https://10.0.3.7:9000","weight":0}},"loadBalancer":{"method":"wrr"}}},"frontends":{"frontend-Host-myapp1-my-domain-com-myapp1-stage-my-domain-com":{"entryPoints":["http","https"],"backend":"backend-ddd-myapp1-stage-2-2-0-2-0-0-0-ssl","routes":{"route-frontend-Host-myapp1-my-domain-com-myapp1-stage-my-domain-com":{"rule":"Host:myapp1.my-domain.com,myapp1-stage.my-domain.com"}},"passHostHeader":true,"priority":0,"basicAuth":[]},"frontend-Host-myapp2-my-domain-com-myapp2-stage-my-domain-com":{"entryPoints":["http","https"],"backend":"backend-ddd-myapp2-stage-2-2-0-2-0-0-0-ssl","routes":{"route-frontend-Host-myapp2-my-domain-com-myapp2-stage-my-domain-com":{"rule":"Host:myapp2.my-domain.com,myapp2-stage.my-domain.com"}},"passHostHeader":true,"priority":0,"basicAuth":[]}}}"
2017-06-09T16:22:53.339299039Z time="2017-06-09T16:22:53Z" level=info msg="Skipping same configuration for provider docker"
2017-06-09T16:23:08.335094957Z time="2017-06-09T16:23:08Z" level=debug msg="Filtering container without port and no traefik.port label traefik.1"
2017-06-09T16:23:08.336505132Z time="2017-06-09T16:23:08Z" level=debug msg="Validation of load balancer method for backend backend-ddd-myapp1-stage-2-2-0-2-0-0-0-ssl failed: invalid load-balancing method ''. Using default method wrr."
2017-06-09T16:23:08.336551553Z time="2017-06-09T16:23:08Z" level=debug msg="Validation of load balancer method for backend backend-ddd-myapp2-stage-2-2-0-2-0-0-0-ssl failed: invalid load-balancing method ''. Using default method wrr."
2017-06-09T16:23:08.336675752Z time="2017-06-09T16:23:08Z" level=debug msg="Configuration received from provider docker: {"backends":{"backend-ddd-myapp1-stage-2-2-0-2-0-0-0-ssl":{"servers":{"server-ddd-myapp1-stage-2-2-0-2-0-0-0-ssl-1":{"url":"https://10.0.3.3:9000","weight":0}},"loadBalancer":{"method":"wrr"}},"backend-ddd-myapp2-stage-2-2-0-2-0-0-0-ssl":{"servers":{"server-ddd-myapp2-stage-2-2-0-2-0-0-0-ssl-1":{"url":"https://10.0.3.7:9000","weight":0}},"loadBalancer":{"method":"wrr"}}},"frontends":{"frontend-Host-myapp1-my-domain-com-myapp1-stage-my-domain-com":{"entryPoints":["http","https"],"backend":"backend-ddd-myapp1-stage-2-2-0-2-0-0-0-ssl","routes":{"route-frontend-Host-myapp1-my-domain-com-myapp1-stage-my-domain-com":{"rule":"Host:myapp1.my-domain.com,myapp1-stage.my-domain.com"}},"passHostHeader":true,"priority":0,"basicAuth":[]},"frontend-Host-myapp2-my-domain-com-myapp2-stage-my-domain-com":{"entryPoints":["http","https"],"backend":"backend-ddd-myapp2-stage-2-2-0-2-0-0-0-ssl","routes":{"route-frontend-Host-myapp2-my-domain-com-myapp2-stage-my-domain-com":{"rule":"Host:myapp2.my-domain.com,myapp2-stage.my-domain.com"}},"passHostHeader":true,"priority":0,"basicAuth":[]}}}"
2017-06-09T16:23:08.336718473Z time="2017-06-09T16:23:08Z" level=info msg="Skipping same configuration for provider docker"

If the above is not possible.... what is the recommended setup for such a requirement? i.e. N traefik instances, using shared configs, shared ACME, but frontend/backend sourced from docker.

3

1 Answer 1

3

Note this was due to an issue in the UI that was fixed by: https://github.com/containous/traefik/pull/1757

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.