Повторное использование переменных в docker-compose yml - PullRequest
1 голос
/ 09 июля 2019

Есть две статьи, описывающие использование переменной среды, но мой вариант использования отличается.

У меня есть файл docker-compose, где у меня есть 3-7 контейнеров. Зависит от ситуации.

version: '2'

services:
  db:
    image: example/db
  backend:
    image: example/server
  frontend:
    image: example/gui

Теперь в приведенном выше примере все мои образы будут использовать последнюю версию, но я хотел бы указать, какую версию развернуть, поэтому я хочу определить переменную версию и использовать ее во всех моих изображениях, например:

version: '2'

variable version=1.0.1

services:
  db:
    image: example/db:$version
  backend:
    image: example/server:$version
  frontend:
    image: example/gui:$version

Второй пример неверен, но он показывает мою потребность в том, чего я хочу достичь

Ответы [ 2 ]

1 голос
/ 09 июля 2019

Docker-compose использовал синтаксис интерполяции ${variable} для переменных, и вы пропустили это в своем файле.

version: '2'

services:
  db:
    image: example/db:${version}
  backend:
    image: example/server:${version}
  frontend:
    image: example/gui:${version}

Так что просто передайте версию вашей docker-compose команде

version=1.13-alpine docker-compose up
1 голос
/ 09 июля 2019

В том же каталоге, что и docker-compose.yml, добавьте файл среды с именем .env, затем укажите переменную среды.

enter image description here

После этого добавьте переменную в docker-compose.yml

enter image description here

${..} представляет переменную в .env

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...