Skip to content

Создание docker image с настроенным traefik

aleserche edited this page Apr 11, 2020 · 2 revisions

Создание docker image с настроенным traefik

Requirement

  • 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. В новый образ копируются сертификаты и конфиг.

Ссылки