组合服务定义中的模板占位符(环境数组)
Template Placerholder in compose service definition (environment array)
我读到 here 你可以在 docker-compose.yml
中使用 go 模板占位符
我已经尝试了多种语法方法,但我从未设法替换占位符。
version: "3.8"
x-base: &base
image: "alpine"
command: ["/bin/sh", "-ec", "while :; do echo '.'; sleep 5 ; done"]
services:
foo:
<<: *base
environment:
- TEST1={{.Service.ID}}
- "TEST2={{.Service.ID}}"
- 'TEST3={{.Service.ID}}'
- TEST4="{{.Service.ID}}"
- TEST5='{{.Service.ID}}'
bar:
<<: *base
environment:
TEST1: "{{.Service.ID}}"
TEST2: '{{.Service.ID}}'
当我检查变量时,我得到了这个。
➜ test docker exec test_foo_1 printenv
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=9165fc2da385
TEST1={{.Service.ID}}
TEST2={{.Service.ID}}
TEST3={{.Service.ID}}
TEST4="{{.Service.ID}}"
TEST5='{{.Service.ID}}'
HOME=/root
➜ test docker exec test_bar_1 printenv
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=393430a158d1
TEST1={{.Service.ID}}
TEST2={{.Service.ID}}
HOME=/root
这只适用于 swarm,不适用于 compose。
docker swarm init --advertise-addr myhost
docker stack deploy -c docker-compose.yml test
我读到 here 你可以在 docker-compose.yml
中使用 go 模板占位符我已经尝试了多种语法方法,但我从未设法替换占位符。
version: "3.8"
x-base: &base
image: "alpine"
command: ["/bin/sh", "-ec", "while :; do echo '.'; sleep 5 ; done"]
services:
foo:
<<: *base
environment:
- TEST1={{.Service.ID}}
- "TEST2={{.Service.ID}}"
- 'TEST3={{.Service.ID}}'
- TEST4="{{.Service.ID}}"
- TEST5='{{.Service.ID}}'
bar:
<<: *base
environment:
TEST1: "{{.Service.ID}}"
TEST2: '{{.Service.ID}}'
当我检查变量时,我得到了这个。
➜ test docker exec test_foo_1 printenv
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=9165fc2da385
TEST1={{.Service.ID}}
TEST2={{.Service.ID}}
TEST3={{.Service.ID}}
TEST4="{{.Service.ID}}"
TEST5='{{.Service.ID}}'
HOME=/root
➜ test docker exec test_bar_1 printenv
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=393430a158d1
TEST1={{.Service.ID}}
TEST2={{.Service.ID}}
HOME=/root
这只适用于 swarm,不适用于 compose。
docker swarm init --advertise-addr myhost
docker stack deploy -c docker-compose.yml test