代码之家  ›  专栏  ›  技术社区  ›  dbones

从文件设置变量

  •  0
  • dbones  · 技术社区  · 6 年前

    有没有一种方法可以从Docker Compose中的文件设置变量?

    以下内容在compose中不起作用(但如果附加到容器,则会起作用):

    version: '2'
    services:
      foo:
        image: busybox
        command:
          - /bin/sh
          - -c
          - |
              echo "hello" > id #this file will be supplied by a volume-from
              ls
              cat id
              TEST=$(cat id)   #This line does not work
              echo TEST
    

    产生的错误是:

    ERROR: Invalid interpolation format for "command" option in service "foo":
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Adiii    6 年前

    您必须更改一点配置文件。

    version: '2'
    services:
      foo:
        image: busybox
        command:
          - /bin/sh
          - -c
          - |
              echo "hello" > id 
              ls
              cat id
              TEST=$$(cat id)
              echo TEST
    

    我检查了Docker版本 Docker version 18.06.0-ce 和Docker撰写版本 docker-compose version 1.20.0-rc2,

    https://github.com/docker/docker.github.io/blob/master/compose/compose-file/index.md#variable-substitution

    当您的配置需要 文字美元符号。这也阻止了compose插入 值,因此$$允许您引用 不要让compose处理。