@kucheriavij

Как правильно производить деплой с gitlab ci/cd?

Добрый день. Имеется группа проекта в gitlab, в ней несколько репозиториев:
  1. api на symfony
  2. frontend для админки
  3. frontend для публичной части

Как правильно организовать деплой такого приложения на stage сервер, и на prod соответственно. Для локальной разработки накидал docker-compose.yaml, в котором сервисы с php-fpm, nginx, postgres. Но так как я сам не devops не могу понять как правильно организовать уже непосредственно процесс сборки и доставки на сервер из нескольких репозиториев. В целом для прода я предполагаю что надо собирать имеджи проектов и уже их доставлять, но как быть со стейджом? Как правильно хранить основной docker-compose.yaml, который и будет уже на сервере собирать и запускать все в кучу? Да и нужен ли он вообще? На какой стадии надо собирать имеджи? Их[имеджи] должен уже сам gitlab средствами ci/cd, или это должен делать разработчки и отправлять их в container registry? Ну и куча подобных вопросов. Devops я стать не хочу, но интересно разобраться в этой теме)
  • Вопрос задан
  • 171 просмотр
Пригласить эксперта
Ответы на вопрос 1
@vitaly_il1
DevOps Consulting
Удобнее разделять CI (юнит тесты, static code analyzer, security scanner, ...) и CD (деплой).
Типичный пример:
- при каждом коммит прогоняются тесты, строится docker image и кладется в registry
- при коммит в ветку staging дополнительно запускается деплой на stage, при коммит в master (на что имеет права только начальник или release manager) - деплой на прод.

Уточнение насчет разделять - обычно это может быть один pipeline, просто разные триггеры\фильтры для CI CD.
Ответ написан
Ваш ответ на вопрос

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

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