撰写服务定义中的模板占位符(环境数组) [英] Template Placerholder in compose service definition (environment array)
本文介绍了撰写服务定义中的模板占位符(环境数组)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在此处阅读您可以在docker-compose.yml中使用go模板占位符
I read here that you can use go template placeholder in docker-compose.yml
我已经尝试了多种语法语法,但是我从未设法替代占位符.
I have tried various ways for the syntax but I never manage to get the placeholder substituted.
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}}'
当我检查变量时,我得到了.
When I check for the variables, I get this.
➜ 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
推荐答案
这仅适用于群集,不适用于撰写.
This works only in swarm, not in compose.
docker swarm init --advertise-addr myhost
docker stack deploy -c docker-compose.yml test
这篇关于撰写服务定义中的模板占位符(环境数组)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文