n1ro°
RU

Текст и данные · Инструкция

Какой env победит в Docker Compose: порядок приоритетов

Если контейнер получает неожиданное значение, нужно проверять всю цепочку источников, а не только `.env`.

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

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

Самый высокий стандартный приоритет имеет значение из CLI `docker compose run -e`; затем идут значения Compose через `environment`/`env_file` с интерполяцией, далее прямой `environment`, `env_file`, и ниже — `ENV` образа.

Порядок действий

  1. Посмотрите итог через `docker compose config`.
  2. Проверьте CLI `-e`.
  3. Сравните `environment` и `env_file`.
  4. Проверьте `.env`/`--env-file` для интерполяции и `ENV` Dockerfile.

Перед завершением проверьте

  • Разделены интерполяция Compose и env внутри контейнера.
  • Проверен итоговый контейнер.

Важно

`.env` и `env_file` сервиса — не одно и то же; не храните чувствительные секреты в открытых env-файлах без необходимости.

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

`.env` и `env_file` сервиса — не одно и то же; не храните чувствительные секреты в открытых env-файлах без необходимости.

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

Фактическая часть сверена по первичным источникам (в т.ч. Environment variables precedence in Docker Compose). Пример и формулировки — редакция N1RO на 2026-09-20.