我设法设置Traefik与我的docker swarm一起工作,并且对于HTTP请求它工作得很好 . 但是,我不知道如何为我的某些容器设置SSL . 我将使用letsencrypt生成证书 .
traefik.toml(部分)
defaultEntryPoints = ["https","http"]
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]
[acme]
email = "acme@example.com"
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 givges错误,但此时对我来说无关紧要) .
我最大的问题是,我仍然不知道如何将traefik TOML配置转换为docker-compose标签 . 例如,Traefik docs解释了入口点,但我有许多服务,它们位于不同的域下 . 有些人有SSL,有些人没有SSL;因此,我希望能够仅使用docker-compose设置http和https entryPoints,http到https重定向等 .
此外,一旦我能够在docker-compose中设置入口点,我是否需要在traefik.toml中保留 [entryPoints]
块?
1 回答
AHOI!
Requirements :Local-Persist Volume Plugin:https://github.com/CWSpear/local-persist(否则必须更改Volume Driver)必须预先创建Traefik网络:"docker network create proxy -d overlay"
(1) Fire Up Traefik:
(2) Mount traefik.toml
(3) Start any Service
更多例子:https://github.com/Berndinox/compose-v3-collection