Привет!
Никогда прежде не сталкивался с настройкой CI/CD, подумал, что это могло бы очень упростить жизнь на моих пет-проектиках.
Работал только в одной компании с грамотным CI/CD, там все было реализовано через докер. Можно ли обойтись без него? У меня windows home версия, и докер использовать не могу (совет поставить линукс очень классный, инфа сотка). Да и пока не особо понимаю нужду в докере, сколько бы хвалебных отзывов не слышал - для мелких проектов уж точно (но видел, как и высоконагруженные сервисы работают без него).
Я пока себе цепочку CI/CD представляю так: я пушу в мастер, на сервере автоматически билдится фронт, кидается в папку статики сервера, pm2 перезагружается. Это норм?)
Прошу прощения за тупой вопрос! Конкретно в девопс очень нуб еще. Если нельзя обойтись без докера или это очень глупая затея, то как можно сделать контейнер только на сервере?
Я честно потратил несколько часов времени на поиск какой-нибудь адекватной статьи или видео на эту тему, но пока все очень поверхностно. Буду благодарен за помощь и дискуссию)
Всё делается достаточно просто и без докера. С помощью rsync, tar, openssh и sshpass вполне можно настроить практически "бесшовный" деплой.
Логика будет такая (используя гитлаб):
1. Собираете полностью ваш проект
2. Упаковываете его в tar архив, скажем deploy_new
3. С помощью ssh и rsync заливаете архив на ваш сервер рядом с главной папкой рабочего проекта (например, public_html)
4. Подключаетесь также по ssh и:
- распаковываете архив в папку deploy_new
- переименовываете public_html, скажем, в deploy_old
- переименовываете папку deploy_new в public_html
- если всё ОК, удаляете папку deploy_old и загруженный архив
5. Готово)