В Интернете есть по крайней мере десяток учебных пособий по настройке приложения Laravel с Docker. Базовая установка c, которую они все используют, состоит из 3 Docker контейнеров:
- nginx контейнер
- php -fpm контейнер
- mysql container
Контейнеры nginx и php -fpm зависят от общего тома. HTTP-запрос приходит в nginx для файла на общем томе. Nginx передает запрос на php -fpm. Php -fpm также имеет доступ к файлам на общем томе, поэтому он может запускать сценарии.
Для разработки это fantasti c. Я могу редактировать файлы на общем томе и сразу же проверять изменения. Но я спрашиваю, хочу ли я это для производства. Я действительно хочу, чтобы какой-нибудь мой код был на сервере с Docker? Это, кажется, побеждает некоторые цели Dockerising это в первую очередь. Похоже, я бы хотел, чтобы код содержался внутри контейнера Docker с обоими nginx и php -fpm (база данных может быть отдельным контейнером или службой в размещенной среде).
Правильно ли мое мышление здесь? Что считается наилучшей практикой для развертывания Laravel в Docker для производства?