微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Traefik 2 将 ENV 直接解析为 golang 模板中的地图?

如何解决Traefik 2 将 ENV 直接解析为 golang 模板中的地图?

我想使用环境变量在 dockerized traefik 2 中加载配置。

为了实现这一点,我想在 traefiks 动态文件配置中使用 golang 模板功能

我尝试了几种方法(我在这里发布了我的 json 测试),但我似乎无法将 ENV 解析为地图。 我还有其他方法可以实现这一目标吗?

docker-compose.yml

version: "2.4"
services:
  internal-gateway:
    image: my-internal-gateway
    environment:
      MY_MAPPINGS: >-
        {
          "microservice1": {"host": "service1:1234"},"microservice2": {"host": "service2:4321"}
        }

我的dynamic-traefik-configuration.yml

http:
  routers:
    {{range $k,$v := env "MY_MAPPINGS"}}
    router-{{ $k }}:
      rule: "PathPrefix(`/{{ $k }}`)"
      service: {{ $k }}
    {{end}}

  services:
    {{range $k,$v := env "MY_MAPPINGS"}}
    {{ $k }}:
      loadBalancer:
        servers:
          - url: "{{ $v.host }}"
    {{end}}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。