Я только что попытался обновить существующую довольно простую настройку Traefik до 2.0.
Я использую Docker в качестве провайдера.
Я запускаю контейнеры с docker-compose.Это моя конфигурация docker-compose:
version: "3.5"
services:
traefik:
image: traefik:v2.0-alpine
read_only: yes
ports:
- 80:80
- 443:443
volumes:
- type: bind
source: /var/run/docker.sock
target: /var/run/docker.sock
- type: bind
source: ./traefik.toml
target: /traefik.toml
- type: bind
source: ./acme.json
target: /acme.json
networks:
- traefik
example:
image: example.com/example/example
labels:
- "traefik.enable=true"
- "traefik.frontend.rule=Host:example.com"
- "traefik.docker.network=traefik"
networks:
- traefik
Это моя traefik.toml
:
defaultEntryPoints = ["http", "https"]
[Global]
sendAnonymousUsage = true
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
entryPoint = "https"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]
[acme]
email = "ssl@example.com"
storage = "acme.json"
entryPoint = "https"
onHostRule = true
onDemand = false
acmeLogging = true
[acme.tlsChallenge]
[docker]
exposedByDefault = false
Эта установка прекрасно работает с Traefik 1.7.
С Traefik 2.0Я наблюдаю две проблемы, просматривая журнал ACME:
Unable to obtain ACME certificate for domains traefik-example-deployment
Unable to obtain ACME certificate for domains example-example-deployment
- Traefik, по-видимому, выставляет оба контейнера.Он должен отображать только пример контейнера.
- Traefik игнорирует метку
traefik.frontend.rule=Host:example.com
.
Я подозреваю, что это может быть связано с изменениями формата конфигурации в Traefik 2.0.Однако, хотя я просмотрел документацию 2.0, я не смог понять, как выглядит правильная конфигурация.