@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 я стать не хочу, но интересно разобраться в этой теме)
  • Вопрос задан
  • 134 просмотра
Пригласить эксперта
Ответы на вопрос 1
@vitaly_il1
DevOps Consulting
Удобнее разделять CI (юнит тесты, static code analyzer, security scanner, ...) и CD (деплой).
Типичный пример:
- при каждом коммит прогоняются тесты, строится docker image и кладется в registry
- при коммит в ветку staging дополнительно запускается деплой на stage, при коммит в master (на что имеет права только начальник или release manager) - деплой на прод.

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

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

Войти через центр авторизации
Похожие вопросы
06 июн. 2023, в 13:03
1000 руб./за проект
06 июн. 2023, в 12:58
5000 руб./за проект
06 июн. 2023, в 12:51
30000 руб./за проект