使用Jenkins+BlueOcean构建Nuxt应用(Jenkinsfile配置)

pipeline {
  agent {
    label 'my-blog'	# 因为我的博客服务器已经搭建了node环境,所以就用他来构建啦
  }
  stages {
    stage('build') {
      steps {
        sh './build.sh'
      }
    }

    stage('deploy') {
      steps {
        input message: 'Begin deployment? (Click "Proceed" to continue)'
        sh './restart.sh'
      }
    }
  }
}
复制代码

build.sh

主要用来构建环境

npm install
npm run build
复制代码

restart.sh

主要用来将新版本发布

rsync -avzP --delete ./ /data/website/blog-page/
supervisorctl restart nuxt	# 我的前端服务主要通过supervisor来监控运行
复制代码

supervisor nuxt配置

[program:nuxt]
command =npm run start
autostart=true       ; 在supervisord启动的时候也自动启动
startsecs=10         ; 启动10秒后没有异常退出,就表示进程正常启动了,默认为1秒
autorestart=true     ; unexpected,表示进程意外杀死后才重启
startretries=3       ; 启动失败自动重试次数,默认是3
user=roki ; 用哪个用户启动进程,默认是root
directory=/data/website/blog-page
priority=999         ; 进程启动优先级,默认999,值小的优先启动
redirect_stderr=true ; 把stderr重定向到stdout,默认false
stdout_logfile_maxbytes=200MB  ; stdout 日志文件大小,默认50MB
stdout_logfile_backups = 20   ; stdout 日志文件备份数,默认是10
stdout_logfile=/var/log/blog-nuxt.log
stderr_logfile=/var/log/blog-nuxt-err.log
stopasgroup=true     ;默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程
killasgroup=true     ;默认为false,向进程组发送kill信号,包括子进程
复制代码

需要注意是,配置中的 stopasgroup
killasgroup
必须为 true
否则将无法正常通过 supervisorctl
重启服务,因为在命令运行后node将在一个子进程中去监听端口,所以直接 kill
父进程后重新启动将会因为端口冲突而启动失败。

原文 

https://juejin.im/post/5e7f55f66fb9a03c2e540aa5

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » 使用Jenkins+BlueOcean构建Nuxt应用(Jenkinsfile配置)

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址