Docker部署jenkins+sonar+gitlab代码检测系统

SonarQube是管理代码质量一个开放平台,能够快速的定位代码中潜在的或者明显的错误,提高代码质量。如果想单纯测试或者初期使用SonarQube的话,利用docker来搭建是非常方便的。

原理
通过Jenkins中gitlab插件,自动获取gitlab更新动作,然后触发SonarQube scanner功能,把最新提交代码的检测结果发送到SonarQube系统中。
1.Jenkins——自动化CI/CD系统,自动拉取代码。
2.SonarQube——代码检测系统,负责检测gitlab中的代码。
3.Gitlab——代码仓库,存储代码。

搭建
Jenkins

docker run -d - p 8888:8080 -p 5000:5000 -v /data/jenkins:/var/jenkins_home jenkins/jenkins:latest

#8080为对外提供访问端口。
#-v参数是把容器/var/jenkins_home目录进行持久化,方便后续的配置操作。
#拉取最新的Jenkins镜像版本。

SonarQube

docker run -d -p 9000:9000 --name sonarqube  sonar:latest

#9000对外提供访问端口
#默认登陆密码是admin:admin
#注意点:SonarQube7.9版本后不再支持MySQL数据库,只有postgressql,但如果不涉及到升级可以考虑不使用额外的数据库,使用内部提供的数据库即可。

配置
1.SonarQube
SonarQube配置只涉及到2个配置点:①新增中文插件,下载对于版本的sonar-l10n-zh-plugin插件,然后使用docker命令拷贝到容器/opt/sonarqube/extensions/plugins路径后,重启服务器②配置用户token,交予Jenkins。

2.Jenkins
配置系统配置,新增SonarQube服务器推送地址,其中的token值就是SonarQube用户提供的。

新增SonarQube scanner系统工具,使Jenkins拥有SonarQube scanner的功能。

配置项目中SonarQube操作案例。
①配置时间变量,方便后期SonarQube版本管理

②配置gitlab拉取地址

③在构建选择项中,选择Execute SonarQube Scanner,根据具体情况填写内容

sonar.projectKey=zhouzhifei#项目key
sonar.projectName=zhouzhifei#项目名称
sonar.projectVersion=${date}#可以根据时间来定义版本号,方便查看
sonar.sources=.#项目路径
sonar.language=js#项目语言
sonar.sourceEncoding=UTF-8#项目编码
sonar.scm.disabled=true#取消scm

补充:
Gitlab中提供了webhook的功能,可以考虑与Jenkins相结合,形成自动触发的效果,可以根据自身网络情况进行自动化触发项目!

posted @ 2020-03-30 17:19  周知非  阅读(1655)  评论(2编辑  收藏  举报
返回顶点