Как реализовать авто-деплой nuxt приложения с SSR?

Есть приложение, которое работает на сервере через nginx как прокси, запускается через pm2, лежит там в виде клона git-репозитория.
При необходимости обновить приложение:
захожу на сервер в папку приложения,
запускаю git pull,
затем выполняю последовательно команды:
  • pm2 delete 0
  • npm run build
  • pm2 start ecosystem.config.js --only nuxt-prod


При этом сайт висит с ошибкой 502 до окончания билда, это может занять до 5 минут, что недопустимо.

Какие есть варианты автоматизировать процесс обновления, билда и перезапуска приложения чтобы избежать всей этой ручной работы и простоя сайта ?
  • Вопрос задан
  • 7792 просмотра
Пригласить эксперта
Ответы на вопрос 2
@vitaly_il1
DevOps Consulting
Тут есть несколько вопросов:
1) Как деплоить pm2 без опускания сервиса - смотреть здесь https://www.google.com/search?q=pm2+deploy+without...
2) Как обеспечить работу сервиса если билд был неудачный? - иметь несколько серверов с лоадбалансером, отключать один, деплоить, тестировать, подключать если все ОК. Делать rollback если не ОК
3) Как все это автоматизировать - если код на GitHub, проще всего с помощью GitHub Actions
4) В AWS и других облаках 2 и 3 намного легче, так есть есть готовые сервисы которые умеют плавно деплоить
Ответ написан
Комментировать
evgensenin
@evgensenin
Yii2 || Laravel, vue & nuxt
Pm2 умеет делать деплой
Удалять инстанс не обязательно, просто рестартите его.
Ответ написан
Ваш ответ на вопрос

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

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