Текст и данные · Инструкция
Какой env победит в Docker Compose: порядок приоритетов
Если контейнер получает неожиданное значение, нужно проверять всю цепочку источников, а не только `.env`.
Короткий ответ
Самый высокий стандартный приоритет имеет значение из CLI `docker compose run -e`; затем идут значения Compose через `environment`/`env_file` с интерполяцией, далее прямой `environment`, `env_file`, и ниже — `ENV` образа.
Порядок действий
- Посмотрите итог через `docker compose config`.
- Проверьте CLI `-e`.
- Сравните `environment` и `env_file`.
- Проверьте `.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.