撰写服务定义中的模板占位符(环境数组) [英] Template Placerholder in compose service definition (environment array)

查看:65
本文介绍了撰写服务定义中的模板占位符(环境数组)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在此处阅读您可以在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆