在 docker-compose 文件中升级到 Traefik v2 for Docker Swarm - 在配置中使用 $ 符号等
Upgrading to Traefik v2 in docker-compose file for Docker Swarm - use of $ signs in the config, etc
Traefik 工作得很好。设置它可能需要一些毅力。在此 post 中,您会发现许多关于在 Docker Swarm 环境中升级到 Traefik v2.5 的提示。在关于如何使用$符号的问题中。
docker-compose文件中动态Traefik配置中$符号和环境变量的使用规则是什么?这种编码方式背后的设计是什么?
我还没有找到关于在 Traefik 的 docker-compose 文件中使用什么的可靠描述。是的,Treafik 文档多次提到我们应该注意 $ 符号。
作为一个'spec by example' 上网扫了一遍,这些都是有效的吗?有更好的方法吗? => 是的
- "traefik.http.routers.mycomp.rule=Host(`somwhere.uk`) && PathPrefix(`/comp/${STACK_NAME}}`)"
- "traefik.http.routers.mycomp.service=wiremock_${STACK_NAME}"
基本身份验证:因此,加倍任何 $ 符号 => 是
- "traefik.http.middlewares.dashboard.basicauth.users=admin:$$2a$$13$$xoE7...HG"
替换:加倍任何 $ 符号? => 是的
- "traefik.http.middlewares.grafana.replacepathregex.regex=^/grafana/(.*)" 和
- "traefik.http.middlewares.grafana.replacepathregex.replacement=/$$1"
用环境变量替换。就这样?
- "traefik.http.routers.dkkbeheerapp.middlewares=abc"
- "traefik.http.middlewares.abc.stripprefix.prefixes=/prefix/${STACK_NAME}"
正则表达式:加倍任何 $ 符号? => 是的
- "traefik.http.routers.alertmanager.middlewares=abc,def"
- "traefik.http.middlewares.abc.redirectregex.regex=^(.*)/alertmanager$$"
- "traefik.http.middlewares.abc.redirectregex.replacement=$$1/alertmanager/"
- "traefik.http.middlewares.def.replacepathregex.regex=^/alertmanager/(.*)"
- "traefik.http.middlewares.def.replacepathregex.replacement=/alertmanager/$$1"
最后我将所有 Traefik v1 配置升级到 v2.5。
题中给出的配置均有效
也许您在 Docker Swarm 中重视 Traefik v2.5 的一些转换提示:
- 当您有不同的主机名时,back-quote 每个。所以,Host(`a`, `b`).
- 有一个转换工具。请注意,标准的 global: {} 给出了错误。仅将子句与至少一个 属性 一起使用,例如 checkNewVersion: false.
- 在一组不同的 Docker 集群和多个节点中,您可能必须在特定的 Docker EE 管理器端口上收听 Docker 事件。不是 /var/run/docker.sock.
- 在 Docker Swarm 中,您可以使用像 stack_container 这样的服务名称。我必须使用这些 stack_container 名称以及路由器中的名称,而不仅仅是 'container'.
- 不要忘记将 Traefik 标签放在服务的部署部分下(在 docker-compose.yml 中)文件。
- 当您收到此消息(失败 ... InvalidArgument desc = 仅允许更新标签)时,您应该删除(或通过 version-suffix 更新)静态 traefik 配置文件。
享受Traefik v2.5+
Traefik 工作得很好。设置它可能需要一些毅力。在此 post 中,您会发现许多关于在 Docker Swarm 环境中升级到 Traefik v2.5 的提示。在关于如何使用$符号的问题中。
docker-compose文件中动态Traefik配置中$符号和环境变量的使用规则是什么?这种编码方式背后的设计是什么?
我还没有找到关于在 Traefik 的 docker-compose 文件中使用什么的可靠描述。是的,Treafik 文档多次提到我们应该注意 $ 符号。
作为一个'spec by example' 上网扫了一遍,这些都是有效的吗?有更好的方法吗? => 是的
- "traefik.http.routers.mycomp.rule=Host(`somwhere.uk`) && PathPrefix(`/comp/${STACK_NAME}}`)"
- "traefik.http.routers.mycomp.service=wiremock_${STACK_NAME}"
基本身份验证:因此,加倍任何 $ 符号 => 是
- "traefik.http.middlewares.dashboard.basicauth.users=admin:$$2a$$13$$xoE7...HG"
替换:加倍任何 $ 符号? => 是的
- "traefik.http.middlewares.grafana.replacepathregex.regex=^/grafana/(.*)" 和
- "traefik.http.middlewares.grafana.replacepathregex.replacement=/$$1"
用环境变量替换。就这样?
- "traefik.http.routers.dkkbeheerapp.middlewares=abc"
- "traefik.http.middlewares.abc.stripprefix.prefixes=/prefix/${STACK_NAME}"
正则表达式:加倍任何 $ 符号? => 是的
- "traefik.http.routers.alertmanager.middlewares=abc,def"
- "traefik.http.middlewares.abc.redirectregex.regex=^(.*)/alertmanager$$"
- "traefik.http.middlewares.abc.redirectregex.replacement=$$1/alertmanager/"
- "traefik.http.middlewares.def.replacepathregex.regex=^/alertmanager/(.*)"
- "traefik.http.middlewares.def.replacepathregex.replacement=/alertmanager/$$1"
最后我将所有 Traefik v1 配置升级到 v2.5。
题中给出的配置均有效
也许您在 Docker Swarm 中重视 Traefik v2.5 的一些转换提示:
- 当您有不同的主机名时,back-quote 每个。所以,Host(`a`, `b`).
- 有一个转换工具。请注意,标准的 global: {} 给出了错误。仅将子句与至少一个 属性 一起使用,例如 checkNewVersion: false.
- 在一组不同的 Docker 集群和多个节点中,您可能必须在特定的 Docker EE 管理器端口上收听 Docker 事件。不是 /var/run/docker.sock.
- 在 Docker Swarm 中,您可以使用像 stack_container 这样的服务名称。我必须使用这些 stack_container 名称以及路由器中的名称,而不仅仅是 'container'.
- 不要忘记将 Traefik 标签放在服务的部署部分下(在 docker-compose.yml 中)文件。
- 当您收到此消息(失败 ... InvalidArgument desc = 仅允许更新标签)时,您应该删除(或通过 version-suffix 更新)静态 traefik 配置文件。
享受Traefik v2.5+