Ошибки и коды · Инструкция
Docker Compose: variable is not set
Выполните `docker compose config --environment` и найдите отсутствующее имя. Проверьте shell environment, `.env` и явно
Короткий ответ
Проверьте источник значения через `docker compose config --environment`; задайте осмысленный default `${VAR:-value}` для необязательной переменной или `${VAR:?message}` для обязательной, вместо скрытого пустого значения.
Проверка по порядку
- Выполните `docker compose config --environment` и найдите отсутствующее имя.
- Проверьте shell environment, `.env` и явно заданный `--env-file` с учётом приоритетов.
- Если значение необязательное, задайте default, например `${PORT:-8080}`.
Исправление
- Если без переменной запуск опасен, используйте `${TOKEN:?TOKEN is required}`.
- Если `$VAR` должен остаться буквальным текстом для контейнера, используйте корректное Compose-экранирование `$`.
- Повторите `docker compose config` и убедитесь, что warning исчез, а итоговое значение ожидаемо.
Как понять, что исправлено
- config --environment показывает непустое ожидаемое значение, а compose больше не предупреждает о unset variable.
Важно
Не оставляйте обязательную переменную пустой по умолчанию. Для критичных значений используйте ${VAR:?message}, чтобы Compose остановился с понятной ошибкой.
Что учитывать
Не оставляйте обязательную переменную пустой по умолчанию. Для критичных значений используйте ${VAR:?message}, чтобы Compose остановился с понятной ошибкой.
Источники и проверка
Фактическая часть сверена по первичным источникам (в т.ч. Interpolation). Пример и формулировки — редакция N1RO на 2026-09-17.