-
Notifications
You must be signed in to change notification settings - Fork 0
Создание docker image с настроенным traefik
- docker
- свободный домен
Для комфортной работы нужно использовать домен со следующими записями:
type: A, value: 127.0.0.1, name: domain.name
-
type: A, value: 127.0.0.1, name: *.domain.name
Требуемые домены должны указывать на localhost.
Для удобства используются сертификаты Let's Encrypt. Способы получить сертификаты описаны в разделе Getting Started
В итоге необходимо получить пару из закрытого и открытого ключей.
defaultEntryPoints = ["http", "https"]
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
entryPoint = "https"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]
[[entryPoints.https.tls.certificates]]
certFile = "/certs/cert.pem"
keyFile = "/certs/key.pem"
[docker]
exposedbydefault = false
По умолчанию указаны две точки входа: http и https. У бекендов к ним будет доступ по умолчанию. Весь трафик поступающий на 80 порт (http), будет редиректиться на 443 (https). [Redirect HTTP to HTTPS]
В разделе [entryPoints.https.tls.defaultCertificate]
перечиcлены сертификаты. [Static Certificates]
В разделе [docker]
указаны настройки провайдера docker. Данная конфигурация будет игнорировать контейнеры, у которых нет label traefik.enable = true
. [Docker]
Для удобства сборки, можно создать директорию, в которой будут находиться:
- traefik.toml
- Dockerfile
- сертификаты
Пример Dockerfile
FROM traefik:alpine
MAINTAINER aleserche
ADD certs/* /certs/
ADD traefik.toml /traefik.toml
За основу используется traefik:alpine
. В новый образ копируются сертификаты и конфиг.