前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >通过Docker搭建SonarQube平台

通过Docker搭建SonarQube平台

作者头像
岛哥的质量效能笔记
发布2021-08-18 14:56:47
6790
发布2021-08-18 14:56:47
举报
文章被收录于专栏:岛哥的质量效能笔记

Docker 主要解决环境配置问题,这里介绍一下如何通过Docker简单的搭建和部署一个SonarQube静态代码扫描平台以及如何接入Jenkins持续集成及时通知开发人员。

简介

SonarQube是一个开源的代码质量管理系统,可以扫描项目中重复代码、编码标准、单元测试、代码覆盖率、代码复杂度、潜在Bug等。支持Java、C/C++、C#、PHP、Groovy、JavaScript、Python等多种语言。代码扫描的好处在于可以通过配置规则扫描代码设计缺陷和提供代码优化建议从而提高代码的质量。本文介绍使用docker技术在Mac环境下搭建SonarQube并配合Jenkins和钉钉机器人完成代码的扫描及报告通知。

Docker安装

这里介绍最简单的手动安装方式,可以通过这个链接下载:

代码语言:javascript
复制
https://download.docker.com/mac/stable/Docker.dmg

如同 MacOS 其它软件一样,安装也非常简单,双击下载的 .dmg 文件,然后将那只鲸鱼图标拖拽到 Application 文件夹即可(其间可能会询问系统密码)。

SonarQube安装

这里参考了名叫 jamesz2011 网友的方案略加修改,依次执行下面的shell命令即可:

代码语言:javascript
复制
wget https://github.com/logan62334/sonarqube/raw/master/ifSonarqube.shsudo chmod a+x ifSonarqube.shruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/nullbrew install dos2unixsudo dos2unix ifSonarqube.sh./ifSonarqube.sh

当你看到下面的界面时,证明已经成功启动:

然后访问:http://127.0.0.1:9000 即可看到成功后的SonarQube页面:

Jenkins配置

这里就不详细介绍Jenkins的安装和使用了,直接讲如何配置Sonar检查任务:

在插件管理中搜索SonarQube Scanner for Jenkins并安装,在系统设置中配置sonar的服务地址(即http://127.0.0.1:9000),注意要把127.0.0.1换成搭建有sonar服务的服务器IP,还有就是第一次启动sonar平台时生成的token。

接下来在Jenkins所在服务器的maven setting文件中增加下面的配置项:

代码语言:javascript
复制
<profile>     <id>sonar</id>     <activation>         <activeByDefault>true</activeByDefault>     </activation>     <properties>     <!-- Optional URL to server. Default value is http://localhost:9000 -->         <sonar.host.url> http://ip:9000 </sonar.host.url>     </properties> </profile>

最后来看看sonar扫描任务的job怎么配置:

这里通过参数化构建的方式来为不同的代码仓库做检查:

然后增加maven构建任务:

代码语言:javascript
复制
clean org.jacoco:jacoco-maven-plugin:prepare-agent install -Dmaven.test.failure.ignore=true -P devsonar:sonar

最后增加构建后任务,同过Python脚本分析项目中pom.xml文件提取groupId和artifactId来拼接报告地址:

代码语言:javascript
复制
if [ ! -d "venv" ]; then     virtualenv venv fi . venv/bin/activate pip install requests python /Users/xxx/tools.py pom.xml
#tools.py:wget https://github.com/logan62334/sonarqube/raw/master/tools.py
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-03-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 岛哥的质量效能笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档