在 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 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+