从 Traefik V2 defaultRule 中删除 docker-compose 堆栈名称

Fre*_*ike 4 docker docker-compose traefik

在 Traefik V2 中,defaultRule=Host( .Name .. ) 中的 .Name 属性会打印容器名称-stackName,而不是在使用 docker-compose 时仅打印容器名称。

知道如何删除它吗?这是我目前的规则:

- --providers.docker.defaultRule=Host(`{{ trimPrefix `/` .Name }}.containers.myorg.com`)
Run Code Online (Sandbox Code Playgroud)

如果我的撰写堆栈的名称是monitoring,并且容器是grafana,则会创建:

grafana-monitoring.containers.myorg.com
Run Code Online (Sandbox Code Playgroud)

代替

grafana.containers.myorg.com
Run Code Online (Sandbox Code Playgroud)

谢谢

Fre*_*ike 6

这似乎对我有用:

- --providers.docker.defaultRule=Host(`{{if index .Labels "com.docker.compose.service" }}{{ index .Labels "com.docker.compose.service" }}.containers.myorg.com{{else}}{{ trimPrefix `/` .Name }}.containers.myorg.com{{end}}`)
Run Code Online (Sandbox Code Playgroud)