установка переменной из файла - PullRequest
0 голосов
/ 13 октября 2018

Есть ли способ установить переменную из файла в докере 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 Ответ

0 голосов
/ 13 октября 2018

Вы должны немного изменить свой файл конфигурации.

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.

...