I want to load configurations in a dockerized traefik 2 using environment variables.
To achieve this I would like to use the golang template capabilities in traefiks dynamic file configuration.
I tried several approaches (I'm posting my json test here) but I can not seem to be able to parse the ENV into a map.
Is there any other way I could achieve this?
docker-compose.yml
:
version: "2.4"
services:
internal-gateway:
image: my-internal-gateway
environment:
MY_MAPPINGS: >-
{
"microservice1": {"host": "service1:1234"},
"microservice2": {"host": "service2:4321"}
}
My 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}}
question from:
https://stackoverflow.com/questions/65944404/traefik-2-parsing-env-directly-into-map-in-golang-template 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…