n1ro°
RU

Ошибки и коды · Инструкция

Docker Compose: variable is not set

Выполните `docker compose config --environment` и найдите отсутствующее имя. Проверьте shell environment, `.env` и явно

Редакция N1RO · Проверено

Короткий ответ

Проверьте источник значения через `docker compose config --environment`; задайте осмысленный default `${VAR:-value}` для необязательной переменной или `${VAR:?message}` для обязательной, вместо скрытого пустого значения.

Проверка по порядку

  • Выполните `docker compose config --environment` и найдите отсутствующее имя.
  • Проверьте shell environment, `.env` и явно заданный `--env-file` с учётом приоритетов.
  • Если значение необязательное, задайте default, например `${PORT:-8080}`.

Исправление

  1. Если без переменной запуск опасен, используйте `${TOKEN:?TOKEN is required}`.
  2. Если `$VAR` должен остаться буквальным текстом для контейнера, используйте корректное Compose-экранирование `$`.
  3. Повторите `docker compose config` и убедитесь, что warning исчез, а итоговое значение ожидаемо.

Как понять, что исправлено

  • config --environment показывает непустое ожидаемое значение, а compose больше не предупреждает о unset variable.

Важно

Не оставляйте обязательную переменную пустой по умолчанию. Для критичных значений используйте ${VAR:?message}, чтобы Compose остановился с понятной ошибкой.

Что учитывать

Не оставляйте обязательную переменную пустой по умолчанию. Для критичных значений используйте ${VAR:?message}, чтобы Compose остановился с понятной ошибкой.

Источники и проверка

Фактическая часть сверена по первичным источникам (в т.ч. Interpolation). Пример и формулировки — редакция N1RO на 2026-09-17.