#docker #docker-compose #docker-swarm
#docker #docker-compose #docker-swarm
Вопрос:
Я прочитал здесь, что вы можете использовать заполнитель шаблона go в docker-compose.yml
Я пробовал различные способы синтаксиса, но мне так и не удалось заменить заполнитель.
version: "3.8"
x-base: amp;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
Ответ №1:
Это работает только в swarm, а не в compose.
docker swarm init --advertise-addr myhost
docker stack deploy -c docker-compose.yml test