I've converted my stack to traefik v2 but I can't get a demo service to work and I can't get the traefik dashboard to load. The traefik logs are showing nothing really. Can somebody please tell me what I am doing wrong? My goal is to get the traefik dashboard to load over ssl.
image: traefik:v2.0
command:
- "--log.level=DEBUG"
- "--api=true"
- "--api.dashboard=true"
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.https.address=:443"
- "--providers.docker.swarmMode=true"
- "--metrics.prometheus=true"
- "--accesslog=true"
- "--ping=true"
networks:
- swarm
ports:
- "80:80"
- "8080:8080"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
...
deploy:
labels:
- "traefik.enable=true"
- "traefik.docker.network=swarm"
- "traefik.http.routers.traefik.entrypoints=https"
- "traefik.http.routers.traefik.rule=Host(`traefik.mydomain.local`)"
- "traefik.http.services.traefik.loadbalancer.server.port=8080"
- "traefik.http.routers.traefik.service=api@internal"
traefik.yml
providers:
file:
directory: /etc/traefik
filename: dynamic_conf.yml
watch: true
dynamic_conf.yml
tls:
certificates:
- certFile: /etc/traefik/certs/wildcard-cert.pem
keyFile: /etc/traefik/certs/wildcard-key.pem
Ch1ch1
September 25, 2019, 7:32am
2
Hello
- "--api.insecure=true"
means that you don't need to expose your dashborad trought traefik
https://docs.traefik.io/v2.0/operations/api/#insecure
Try removing all the labels and keep --api.insecure
or
Remove --api.insecure and keep the labels
1 Like
Thanks but that didn't work. I could REALLY use a basic working example of a Swarm config. Here's what I have, I could really use some assistance - i've been fighting this for days.
compose:
services:
traefik:
image: traefik:v2.0
restart: unless-stopped
command: --providers.docker \
--providers.docker.swarmMode \
--providers.docker.exposedByDefault=false \
--providers.docker.domain=${URLSLUG:-dev}.domain.local \
--providers.docker.watch \
--entryPoints.web.address=:80
--entryPoints.websecure.address=:443
--log.level=DEBUG
networks:
- swarm
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
configs:
- source: traefik_config
target: /etc/traefik/traefik.yml
- source: dynamic_config
target: /etc/traefik/dynamic_conf.yml
- source: cert_config
target: /etc/traefik/certs/wildcard-cert.pem
- source: key_config
target: /etc/traefik/certs/wildcard-key.pem
deploy:
labels:
- "traefik.enable=true"
- "traefik.http.routers.traefik-redirect.rule=Host(`traefik.${URLSLUG:-dev}.domain.local`)"
- "traefik.http.routers.traefik-redirect.entrypoints=web"
- "traefik.http.routers.traefik-redirect.middlewares=https-redirect"
- "traefik.http.middlewares.https-redirect.redirectscheme.scheme=https"
- "traefik.http.routers.traefik.rule=Host(`traefik.${URLSLUG:-dev}.domain.local`)"
- "traefik.http.routers.traefik.entrypoints=websecure"
- "traefik.http.routers.traefik.service=api@internal"
- "traefik.http.routers.traefik.tls=true"
- "traefik.http.services.traefik.loadbalancer.server.port=8080"
- "traefik.docker.network=swarm"
placement:
constraints: [node.role==manager]
traefik.yml
providers:
file:
directory: /etc/traefik
filename: dynamic_conf.yml
watch: true
dynamic_conf.yml
tls:
certificates:
- certFile: /etc/traefik/certs/wildcard-cert.pem
keyFile: /etc/traefik/certs/wildcard-key.pem
and the logs show me nothing. just one entry:
time="2019-09-27T17:29:42Z" level=info msg="Configuration loaded from file: /etc/traefik/traefik.yml"
what i'm seeing is that I cannot connect with https at all, and http throws a 404 on the dashboard url.
ldez
September 27, 2019, 6:05pm
5
command: --providers.docker \
--providers.docker.swarmMode \
--providers.docker.exposedByDefault=false \
--providers.docker.domain=${URLSLUG:-dev}.domain.local \
--providers.docker.watch \
--entryPoints.web.address=:80 \
--entryPoints.websecure.address=:443 \
--log.level=DEBUG \
--providers.file.filename=dynamic_conf.yml
and remove target: /etc/traefik/traefik.yml
There are three different, mutually exclusive (e.g. you can use only one at the same time), ways to define static configuration options in Traefik:
Thanks, I have made this change and I understand the configs now - I thought they were mutually exclusive on a property level. Ok, so with that change in place the service logs this:
time="2019-09-27T18:27:38Z" level=info msg="Configuration loaded from flags."
the traefik config now looks like:
command: --providers.docker \
--providers.docker.swarmMode \
--providers.docker.exposedByDefault=false \
--providers.docker.domain=${URLSLUG:-dev}.domain.local \
--providers.docker.watch \
--entryPoints.web.address=:80 \
--entryPoints.websecure.address=:443 \
--log.level=DEBUG \
--providers.file.filename=dynamic_conf.yml
and I removed the static yml from the compose. Still nothing though. How do I get it to log more?
zespri
September 28, 2019, 12:43am
7
-log.level=DEBUG spits out more on load. If all you seeing is that line above you quoted, you are running with the defaul log level and not DEBUG. It suggests that you applied your configuration in one place but looking for logs in another, or that you applied the configuration incorrectly.
I got it working. All I did was convert the flags to a yml file. Thanks for the assistance.