Основное отличие использования env_file и environment в Docker Compose заключается в том, где и как определяются переменные окружения. 15
С помощью environment можно определить переменные окружения прямо в файле docker-compose.yml. 5 Значение переменной в контейнере берётся из той же переменной в оболочке, из которой был запущен Compose. 2
Env_file используется, когда нужно передать переменные окружения из внешнего файла в контейнеры сервиса. 2 При этом файл загружается в окружение контейнера, а не самого файла Compose. 1
Таким образом, environment позволяет определять переменные окружения в самом файле, а env_file — для работы с переменными, хранящимися в отдельном файле и загружаемыми в контейнер.