Переменные окружения в Compose

Есть несколько частей Compose, которые имеют дело с переменными окружения в том или ином смысле. Эта страница поможет вам найти нужную информацию.

Подстановка переменных среды в Compose файлах

В оболочке можно использовать переменные среды для заполнения значений внутри файла Compose:

web:
  image: "webapp:${TAG}"

Больше информации вы найдете в разделе Подстановка переменных в Docker Compose файле.

Задание переменных окружения в контейнерах

Вы можете задать переменные окружения в контейнере сервиса с помощью ключевого слова environment, также как и в случае docker run -e VARIABLE=VALUE ...:

web:
  environment:
    - DEBUG=1

Передача переменных окружения в контейнеры

Вы можете передать переменные окружения из вашей оболочки прямо в контейнеры сервиса с помощью ключевого слова environment но не задавая значение, так же как и в docker run -e VARIABLE ...:

web:
  environment:
    - DEBUG

Значение переменной DEBUG в контейнере будет взято из значения той же переменной в оболочке из которой был запущен Compose.

Опция env_file

Вы можете передать несколько переменных окружения из внешнего файла tв контейнеры сервиса с помощью опции env_file, также как и в docker run --env-file=FILE ...:

web:
  env_file:
    - web-variables.env

Установка переменных окружения с помощью команды docker-compose run

Так же как и в docker run -e, вы можете задать переменные окружения в контейнере с помощью docker-compose run -e:

$ docker-compose run -e DEBUG=1 web python console.py

Вы так же можете передать переменную из shell если не будете задавать ее значение:

$ docker-compose run -e DEBUG web python console.py

Значение переменной DEBUG в контейнере будет взято из значения той же переменной в оболочке из которой был запущен Compose.

Файл .env

Вы можете установить значения по умолчанию для любых переменных среды, указанных в Compose файле или использовать для настройки Compose файл среды с именем .env:

$ cat .env
TAG=v1.5

$ cat docker-compose.yml
version: '2.0'
services:
  web:
    image: "webapp:${TAG}"

Когда вы запускаете docker-compose up, сервис web определенный выше использует образ webapp:v1.5. Вы можете убедиться в этом с помощью команды настроек, которая выводит настройки вашего приложения в терминал:

$ docker-compose config
version: '2.0'
services:
  web:
    image: 'webapp:v1.5'

Значения из оболочки имеют приоритет над переменными из .env файла. Если вы установите TAG в другое значение в вашей оболочке, будет произведена следующая подстановка:

$ export TAG=v2.0

$ docker-compose config
version: '2.0'
services:
  web:
    image: 'webapp:v2.0'

Настройка Compose с использованием переменных среды

Для настройки поведения командной строки Docker Compose доступны несколько переменных среды. Они начинаются с COMPOSE_ или DOCKER_, более подробную информацию вы можете получить в разделе Переменные окружения интерфейса командной строки.

При использовании опции links в v1 Compose файла, переменные окружения будут созданы для каждой ссылки. Они описаны в руководстве по ссылкам переменных окружения. Обратите внимание, однако, что эти переменные устарели - вы должны просто использовать псевдоним ссылки в качестве имени хоста.


Комментарии:

Комментариев нет, желаете стать первым?

Пожалуйста, авторизуйтесь что бы оставлять комментарии.