мне приходится постоянно билдить образ с вебсервером, просто потому что файлы проекта внутри меняются, но как я понимаю всю логику выполняет другой контнейнер там где fpm запущен
Выполняет да, но читает их и nginx тоже
NGINXу нельзя не дать читать файлы, потому что он сам выбирает, какой файл нужно выполнить, пусть и выполняет их уже php-fpm