Laravel
Каноническое приложение в режиме фреймворка.
ENTRY_FILE=index.php выбирает режим фреймворка: public/ становится корневым каталогом документов, поэтому .env, app/ и vendor/ недоступны по HTTP.
Окружение контейнера переопределяет .env — загрузчик dotenv в Laravel никогда не переопределяет реальные переменные окружения, поэтому DB_HOST и APP_ENV, заданные в Compose, имеют приоритет.
Образ для разработки повторно проверяет OPcache при каждом запросе; правки в примонтированном (bind-mount) каталоге src/ применяются мгновенно.