Как использовать Дженкинс для перезапуска PM2? - PullRequest
1 голос
/ 16 июня 2019

Я запускаю мое приложение node.js на сервере Linux, используя PM2, с файлом конфигурации, например так:

PM2 start mywebsite.config.js

все хорошо.но теперь я хочу добавить Дженкинс к картине.Я работаю над проектом в Дженкинсе, используя Jenkinsfile.Все работает нормально, за исключением последней команды, которая должна перезапустить приложение, чтобы активировать новую версию:

stage('Restart PM2') {  
  steps {
    sh 'pm2 restart all'  }
  }
}

, и эта команда не выполняется.Вот вывод журнала:

+ pm2 restart all 
Use --update-env to update environment variables 
[PM2][WARN] No process found 
< empty pm2 log table here> 
Use `pm2 show <id|name>` to get more details about an app

Я понимаю, что PM2 работает на пользователя.означает, что пользователь, который выполнил первую команду (start), должен запустить и перезагрузку.но как это сделать?

1 Ответ

0 голосов
/ 19 июня 2019

Вместо перезапуска PM2 через код jenkins, позвольте PM2 сделать это самостоятельно, используя флаг наблюдения. в вашем конфигурационном файле установите для часов значение true. Вы можете добавить относительно новый флаг под названием watch-ignore. это массив с файлами, которые должны игнорироваться часами. добавьте ваш файл журнала и файл ошибок в этот список. в противном случае любая зарегистрированная информация приведет к бесконечному перезапуску приложения вашего узла. после внесения этих изменений в файл конфигурации снова запустите pm2 с конфигурацией. удалите перезапускаемый код из Jenkinsfile, он вам больше не нужен, pm2 обнаружит новую версию и перезагрузит приложение!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...