私はdocker swarmと連携するためにTraefikをセットアップすることができましたし、HTTPリクエストに対してはうまく機能します。しかし、私はのSSLをどのように設定するのかわかりません。のコンテナです。私は証明書を生成するためにletsencryptを使用します。この構成ではドッカーにSSL用の適切なラベルを追加するには?
traefik.toml(部分)
defaultEntryPoints = ["https","http"]
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]
[acme]
email = "[email protected]"
storage = "acme.json"
entryPoint = "https"
onHostRule = true
caServer = "https://acme-staging.api.letsencrypt.org/directory"
ドッキングウィンドウ-compose.yml
version: '3'
services:
web:
...
deploy:
labels:
- "traefik.enable=true"
- "traefik.frontend.rule=Host:example.com,www.example.com"
- "traefik.docker.network=public"
- "traefik.frontend.entryPoints=http"
- "traefik.backend=service_web"
私のコンテナはSSLエントリポイントのセットアップを持っていないので、私のアプリケーションはSSLに達することはありません。 "traefik.frontend.entryPoints"を "https"に変更すると、Letsencryptが呼び出されます(LEはステージングのためにエラーを表示しますが、現時点では問題ありません)。
私の最大の問題は、traffikのTOML設定をdocker-composeラベルに変換する方法がまだわからないことです。たとえば、Traefik docsはエントリポイントを説明していますが、私はさまざまなドメインの下にあるサービスを束ねています。 SSLを持っているものもあれば、SSLを持っていないものもあれば、したがって、httpとhttpsのentryPoints、httpとhttpsのリダイレクトなどをdocker-composeだけで設定できるようにしたいと考えています。
また、docker-composeでエントリポイントを設定できたら、[entryPoints]
ブロックをtraefik.tomlに保存する必要がありますか?