2021-06-03 基于docker的jenkins+docker+sonarqube+C++

前言

记录一次搭建Jenkins + docker + sonarqube的环境,代码提交后自动触发sonarqube检查c++代码

docker下安装jenkins

拉取镜像

docker pull jenkins/jenkins

创建docker容器

docker run -d --name jenkins -p 8040:8080 -p 50000:50000 -v /data/jenkins_home:/var/jenkins_home jenkins/jenkins

至于配置docker在此不作赘述

docker下安装sonarqube

sonarqube需要依赖数据库,因此先安装数据库

安装postgresql镜像

docker pull postgres:12.3-alpine

启动postgresql容器

docker run --name postgresql -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar  -p 5432:5432 -v /data/postgresql/data:/var/lib/postgresql/data -d postgres:12.3-alpine

安装sonarqube镜像

docker pull sonarqube:8.4.0-community

启动sonarqube容器

docker run -d --name sonarqube \
    --link postgresql \
    -p 9000:9000 \
    -e sonar.jdbc.url=jdbc:postgresql://postgresql:5432/sonar \
    -e sonar.jdbc.username=sonar \
    -e sonar.jdbc.password=sonar \
    -v /data/sonarqube/sonarqube_extensions:/opt/sonarqube/extensions \
    -v /data/sonarqube/sonarqube_logs:/opt/sonarqube/logs \
    -v /data/sonarqube/sonarqube_data:/opt/sonarqube/data \
    sonarqube:8.4.0-community

安装完成后使用登录:http://ip:9000
默认的帐号和密码为:admin/admin

配置sonarqube

登录sonarqube后,安装中文插件
Configration > Markplace, 搜索chinese pack,点击安装,安装完成后重启
安装中文插件

Configration > System > Restart Server
重启服务器

安装c++插件

说明: sonarqube社区版是不支持c++代码审查的,企业版支持但是要收费。因此需安装牛人自己开发的C++代码审查插件,下载地址

https://github.com/SonarOpenCommunity/sonar-cxx

本人下载的为sonar-cxx-plugin-1.3.2.1853.jar版本的
下载后,放入到/opt/sonarqube/extensions/plugins,因为创建容器中时进行了卷映射,因此可以直接放在docker宿主机下的/data/sonarqube/sonarqube_extensions/plugins,然后重启sonarqube
重启完成后,在sonarqube的代码规则界面,会显示以下内容
在这里插入图片描述
需要激活本规则,激活步骤如下
点击质量配置 >创建 ,名称随便写,语言选择安装的插件,如下图
在这里插入图片描述
创建好之后,将规则设置为默认
在这里插入图片描述

然后,进行激活规则
在这里插入图片描述
在这里插入图片描述
因为我已经激活,所以上述状态显示挂起

生成token,使用jenkins调用sonarqube时需要。输入名称后,点击生成即可。注意保存此token
在这里插入图片描述

Jenkins配置sonarqube环境

安装sonarqube scanner插件

进入到Jenkins的插件管理界面,安装scanner插件
在这里插入图片描述
然后进入到系统配置界面,配置sonarqube服务器地址
在这里插入图片描述
认证token即上述步骤生成的token,然后点击应用保存即可
然后到jenkins的全局工具配置界面,进行scanner的配置
在这里插入图片描述
当前需要配置sonar-scanner的路径,自行下载后,在jenkins容器内进行安装,当然也可以勾选自动安装。我是自行下载的,自行下载地址如下,下载后

https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.6.2.2472-linux.zip

然后进行新建一个自由风格的任务,配置构建步骤
在这里插入图片描述

sonar.projectKey=$JOB_NAME  # project key
sonar.projectName=$JOB_NAME # 项目名称,会在sonarqube界面上显示
sonar.projectVersion=1.0 # 版本,也可以用构建次数代替,使用 $BUILD_NUMBER
sonar.sourceEncoding=UTF-8 # 编码格式
sonar.sources=./src  # 保存源码的路径(相较于$WORKSPACE的路径)
sonar.language=c++ # 一个工程中可能会用到多种语言,例如js css python等,默认情况下都会扫描。这样进行配置代表只扫描c++的代码
sonar.exclusions=**/build/** # 另外可以排除指定的文件夹不进行扫描

然后点击应用保存,进行构建
在这里插入图片描述
从上图可以看出执行的命令就是我们在配置的命令选项
然后进入到sonarqube中进行查看代码审查结果,结果如下
在这里插入图片描述
至此全部结束

参考链接:
https://www.jianshu.com/p/e83d5e002739
https://www.cnblogs.com/nhdlb/p/12576273.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Jenkins 是一款开源的持续集成工具。它最初是由哈德逊 Hudson 的作者开发,之后因为项目管理层的争议而分裂出 Jenkins 项目,成为了一个独立的开源社区。Jenkins 的主要目的是为开发人员和团队提供一个自动化构建、测试和部署的平台,利用 Jenkins 可以极大地提升项目的质量和稳定性,通过不断的持续集成和持续交付,来减轻开发人员和团队的工作负担。 Jenkins 提供了丰富的插件和功能,可以支持多种编程语言和构建工具,包括 Java、C++、Python 和 Ruby 等。Jenkins 可以通过配置不同的构建任务,来实现自动化的代码编译、单元测试、集成测试、代码静态分析、代码覆盖率分析、部署和发布等,从而可以及早地发现和解决问题。 Jenkins 还具有可扩展性和灵活性,可以与其他常用的工具和平台进行集成,如 Git、GitHub、Docker、VMware、JIRA、Slack 等,便于团队之间的协作和信息沟通。在 Jenkins 上还可以用 Groovy 语言编写脚本来实现自定义功能和扩展。并且 Jenkins 的用户界面也非常友好,易于使用和操作,而且不需要太多的技术知识。 综上所述,Jenkins 是一个非常强大的集成工具,特别适合大型项目和复杂应用的开发和部署。它可以提高开发效率和团队协作效率,减少错误和缺陷,保证软件质量和项目进度。因此,Jenkins 成为了当前最流行的开源持续集成工具之一,受到了广泛的推崇和应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值