Я планирую развернуть свое приложение Laravel с помощью док-контейнеров. Мне нужны следующие компоненты для моего приложения:
- Сервер MySQl
- Сервер nginx
- cerbot для активации ssl
- Работник очереди для Laravel
Поскольку приложение все еще находится в стадии разработки (и, вероятно, всегда будет), его должно быть очень легко обновить (я автоматизирую это с помощью GitLab CI / CD) и оно должно иметь как можно меньше времени простояво время обновления. Кроме того, я хочу иметь возможность размещать несколько экземпляров приложения, поэтому отличается только файл .env
для Laravel. В дополнение к живому приложению я хочу разместить промежуточное приложение.
Мой текущий подход заключается в создании контейнера для сервера MySQL, одного для сервера nginx и одного для работника очереди. Код приложения будет слоем в контейнере сервера nginx и в рабочем контейнере очереди. При обновлении приложения я бы перестроил контейнер nginx и рабочий контейнер очереди.
Это хороший подход? Или есть лучшие способы добиться этого? И что было бы хорошим подходом для моего сервера MySQL, сервера Nginx, версии PHP, ... чтобы оставаться в курсе без простоев для приложения?