Развертывание Laravel с контейнерами Docker - PullRequest
0 голосов
/ 28 октября 2019

Я планирую развернуть свое приложение Laravel с помощью док-контейнеров. Мне нужны следующие компоненты для моего приложения:

  • Сервер MySQl
  • Сервер nginx
  • cerbot для активации ssl
  • Работник очереди для Laravel

Поскольку приложение все еще находится в стадии разработки (и, вероятно, всегда будет), его должно быть очень легко обновить (я автоматизирую это с помощью GitLab CI / CD) и оно должно иметь как можно меньше времени простояво время обновления. Кроме того, я хочу иметь возможность размещать несколько экземпляров приложения, поэтому отличается только файл .env для Laravel. В дополнение к живому приложению я хочу разместить промежуточное приложение.

Мой текущий подход заключается в создании контейнера для сервера MySQL, одного для сервера nginx и одного для работника очереди. Код приложения будет слоем в контейнере сервера nginx и в рабочем контейнере очереди. При обновлении приложения я бы перестроил контейнер nginx и рабочий контейнер очереди.
Это хороший подход? Или есть лучшие способы добиться этого? И что было бы хорошим подходом для моего сервера MySQL, сервера Nginx, версии PHP, ... чтобы оставаться в курсе без простоев для приложения?

1 Ответ

0 голосов
/ 28 октября 2019

Основная идея докера - разделить ваше приложение на контейнеры. Так что да, хорошо иметь один контейнер для одной услуги. В вашем примере я предлагаю сохранить MySQL в одном контейнере, а работник очереди - в другом и так далее. В результате у вас будут контейнеры для каждой услуги. Затем предложите создать внутреннюю сетевую сеть и подключить к ним контейнеры. Также я предлагаю использовать тома докера для хранения всех данных вашего приложения. Чтобы сделать это намного проще, я предлагаю для конфигурации использовать docker compose.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...