SonarQube 01 代码质量平台简介与安装

 SonarQube 简介


SonarQube®是一种自动代码审查工具,可检测代码中的错误,漏洞和代码味道。它可以与您现有的工作流程集成,以实现跨项目分支拉取请求的持续代码检查。

Code Quality and Code Security | SonarQube

可以对各种语言,几乎常用的主流语言都是支持的,所以一说到代码扫描就会学到sonaqube

image.png

开发人员在IDE开发代码,可以安装SonarLint插件进行提交前代码扫描,如果本地扫描没有问题那么将代码提交gitlab,当开发人员提交代码到版本控制系统中,自动触发jenkins进行代码扫描。(sonarlint最后也会连接到服务器sonarqube去扫描的)

开发人员将代码提交到版本控制系统之后,触发了ci工具,开始跑流水线跑管道,最后将扫描的结果传到sonarqube上面,最后将质量阈以及其他消息以邮件的方式通知用户。

代码扫描过程

开发人员 IDE 写代码 (SonarLint)

提交代码∶GitLab、SVN、Bitbucket   (Build、UnitTest 、Sonar)

提交流水线∶CI Server (Jenkins/GitLabCI)

  • 扫描成功
  • 扫描失败∶ 邮件通知提交人

扫描报告

SonarQube平台安装配置


  • SonarQube Server启动3个主要进程:
    • Web服务器,供开发人员,管理人员浏览高质量的快照并配置SonarQube实例
    • 基于Elasticsearch的Search Server从UI进行搜索服务。
    • Compute Engine服务器,负责处理代码分析报告并将其保存在SonarQube数据库中,主要是es,做索引。
  • SonarQube数据库要存储:SonarQube实例的配置(安全,插件设置等)项目,视图质量快照。
  • 服务器上安装了多个SonarQube插件,可能包括语言,SCM,集成,身份验证和管理插件。
  • 在持续集成服务器上运行一个或多个SonarScanner,以分析项目。(将最终扫描的结果推送到server上面去

不同的语言有不同的代码规范和规则(以插件的形式体现),这些方式以什么方式体现出来的呢,都是以jar包的形式,每个语言都有其独立的jar包,装到server上面就可以使用这些规则的。所以整体组成就是上面四个部分。

## 创建数据目录
mkdir -p /data/cicd3/sonarqube/{sonarqube_conf,sonarqube_extensions,sonarqube_logs,sonarqube_data}
chmod 777 -R /data/cicd3/sonarqube/

## 运行
docker run  -itd  --name sonarqube \
    -p 9000:9000 \
    -v /data/cicd3/sonarqube/sonarqube_conf:/opt/sonarqube/conf \
    -v /data/cicd3/sonarqube/sonarqube_extensions:/opt/sonarqube/extensions \
    -v /data/cicd3/sonarqube/sonarqube_logs:/opt/sonarqube/logs \
    -v /data/cicd3/sonarqube/sonarqube_data:/opt/sonarqube/data \
    sonarqube:8.9.2-community

## 验证
docker logs -f sonarqube


## lib目录(低于SonarQube8.9.1可以配置持久化,以支持多分支插件。)

mkdir -p /data/cicd/sonarqube/sonarqube_lib
cd  /data/cicd/sonarqube/sonarqube_lib
docker cp sonarqube:/opt/sonarqube/lib/* ./

docker run  -itd  --name sonarqube \
    -p 9000:9000 \
    -v /data/cicd2/sonarqube/sonarqube_conf:/opt/sonarqube/conf \
    -v /data/cicd2/sonarqube/sonarqube_extensions:/opt/sonarqube/extensions \
    -v /data/cicd2/sonarqube/sonarqube_logs:/opt/sonarqube/logs \
    -v /data/cicd2/sonarqube/sonarqube_data:/opt/sonarqube/data \
    -v /data/cicd2/sonarqube/sonarqube_lib:/opt/sonarqube/lib \
    sonarqube:8.9.1-community

默认账号: admin/admin

image

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值