@Markusam

Как деплоить php приложение вместе с docker?

Помогите разобраться в вопросе деплоя php приложения которое работает в dockere. Есть например php приложение, есть его код в каком нибудь version control system, приложение имеет n инстансов, которые могут размещаться на разных серверах. Имеется какой-то свой docker image в котором устанавливается php-fpm определенной версии, различные php extension необходимые для функционирование приложения. И если мы хотим настроить автодеплой при помощи какого либо CI\CD tools(Jenkins, Gitlab CI\CD etc), правильно ли я понимаю алгоритм и процесс как это должно происходить?

В нашем CI\CD pipeline, который сперва делает checkout нужной нам ветки из VCS, далее мы билдим контейнер с php(код php в контейнер попадает путем COPY команды), далее выполняем composer install(так как vendor папку не храним в VCS), далее запускаем тесты\анализаторы кода и тд, если проверки прошли успешно делаем docker push в какой либо registry(docker, gitlab etc), правильно ли понимаю что в registry пушим образ в котором кроме самого php-fpm и его extension, должен присутствовать код приложения (с vendor и тд)? Далее на целевых серверах делаем docker pull только что созданного образа и docker run.
  • Вопрос задан
  • 100 просмотров
Пригласить эксперта
Ответы на вопрос 1
@vitaly_il1
DevOps Consulting
В целом все правильно.
Насчет деплоя - есть нюансы
- как CD pipeline знает адреса серверов? В современном "облачном" окружении они часто меняются, нужен какой-то метод для их динамического получения
- как обеспечить бесперебойную работу приложения во время деплоя?

В облаках (AWS/GCP/ наверно и Yandex) есть managed services, которые сами умеют решать эти и другие (autoscaling) проблемы. В AWS это ECS, Elastic Beanstalk, AWS App Runner, managed K8S.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы