n1ro°
RU

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

Docker Compose не загружает .env или env_file

Из каталога запуска выполните `docker compose config --environment` и найдите нужное имя. Выполните `docker compose conf

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

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

Разделите два механизма: `.env`/`--env-file` используются для interpolation Compose, а `env_file:` передаёт переменные внутрь контейнера; проверьте итог через `docker compose config --environment` и `docker compose config`.

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

  • Из каталога запуска выполните `docker compose config --environment` и найдите нужное имя.
  • Выполните `docker compose config` и посмотрите, во что реально превратилось `${VAR}`.
  • Для другого interpolation-файла запустите `docker compose --env-file <file> config` и сравните результат.

Исправление

  1. Если переменная нужна контейнеру, проверьте `environment:` или `env_file:` у конкретного service.
  2. Проверьте относительный путь файла с учётом текущего Compose project/config.
  3. Пересоздайте service после изменения env и проверьте значение внутри контейнера, не выводя секреты в общий лог.

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

  • docker compose config и config --environment показывают ожидаемые значения и контейнер получает только переменные из нужного источника.

Важно

Не путайте Compose interpolation и env_file: одинаковое имя переменной может иметь разные источники и precedence. Всегда смотрите resolved config.

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

Не путайте Compose interpolation и env_file: одинаковое имя переменной может иметь разные источники и precedence. Всегда смотрите resolved config.

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

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