Задать вопрос
PankovAlxndr
@PankovAlxndr
Fullstack web developer

Какие способы доставки приложения на prod существуют в gitlab?

ребят, запутался. помогите разобраться
ранее в ci\cd нос не совал
обновлял php приложение так
1) с локальной машины делаю push в main
2) захожу на vps через ssh
3) пишу там git pull origin main
4) готова - фича выкачена

на данном этапе никакого докера

хочу теперь через ci\cd гитлаба сделать
вижу шаги
1) с локальной машины делаю push в main
2) в gitlab-ci.yml у меня есть джоба (only: - main)
3) через шаред раннер гитлаб запускает мой пайплайн
4) внутри него я через rsync копирую файлы на prod сервер (а если файлов тысяча...)

так?
(учебный проект, без доекра, node и тп, просто php)
если все так, выходит на проде мне не нужен теперь гит?
только composer чтобы зависимости скачать и обновить?

Какие вообще есть варианты доставить код, если не учитывать docker
rsync, scp, ftp?
а если у нас nuxt, которого нужно собирать (билдить), и бесшовно менять на проде тогда как?
  • Вопрос задан
  • 211 просмотров
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
4. Хоть тысяча, хоть миллион - проблемы вряд ли возникнут. В крайнем случае упаковать в архив и передать на прод в виде архива, и там его распаковать.
Можно ещё с докером попробовать заморочиться.

И да, на проде гит тебе не нужен.
На счёт composer не подскажу, но по идее тоже не нужен, если отправлять сразу с загруженными зависимостями.

С nuxt - точно также билдишь в gitlab ci и отправляешь уже собранные артефакты.
Чтобы не уходить в простой, пока файлы подменяются - сделать хотябы два узла и раскатывать blue-green или rolling update.

Вообще самой хорошей практикой считается собрать все твои результирующие файлы в какой-нибудь пакет/контейнер и сохранить его в каком-нибудь репозитории пакетов (Artifactory к примеру) в том же ДЦ, что и твоё основное приложение, а потом с рабочего узла его вытянуть и раскатать.

Но в простом случае легче будет запаковать файлы в tar и передать по scp
Ответ написан
Ваш ответ на вопрос

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

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