使用Docker进行SonarQube安装和使用(代码质量管理)

背景

在平时产品开发过程中,开发人员代码风格和能力参差不齐,提交的代码没有做规范限制,为了防止一些简单的隐藏的问题给产品带来影响,在产品测试开始前进行代码静态质量检查并作出报告,使问题暴露在最前面,减少代码隐藏的问题。

部署准备

环境清单

1.CentOs7.2(我使用的linux系统版本,其他系统未测试)
2.Docker容器环境(安装docker环境这里不赘述,论坛内大把教程,我这里用的是docker+portainer)

组件清单

1.Mysql
2.SonarQube
3.SonarQube Scanner

1、数据库mysql部署

1.拉取mysql镜像:

docker pull mysql:5.7.19

最好用5.7的版本,避免后面出现神奇的问题

2.启动mysql:

docker run --name sonar-mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3307:3306 -d mysql:5.7.19

生成的产物:

  • 创建了一个名为sonar-mysql的容器(可运行的mysql服务)
  • 生成了初始数据库账户
    用户名:root
    密码:123456

2、创建sonar数据库和sonar用户

进入容器:

docker exec -it sonar-mysql /bin/bash

#登录mysql

mysql -u root -p

密码就是前面的123456

#创建sonar数据库

create database sonar;

#添加远程登录用户sonar(给后面SonarQube服务使用)

CREATE USER 'sonar'@'%' IDENTIFIED WITH mysql_native_password BY 'sonar';
GRANT ALL PRIVILEGES ON *.* TO 'sonar'@'%';

3、获取 sonarqube 的镜像

docker pull sonarqube

4、启动 sonarqube

docker run -d --name sonarqube -p 9000:9000 -p 9092:9092 --link=sonar-mysql:mysql -e SONARQUBE_JDBC_USERNAME=sonar -e SONARQUBE_JDBC_PASSWORD=sonar -e SONARQUBE_JDBC_URL="jdbc:mysql://192.168.1.35:3307/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false" sonarqube
  • 创建了一个名为sonarqube的容器(可运行的sonarqube服务)
  • 开放两个端口9000和9092,冒号前面表示映射系统主机的端口,后面表示映射容器的端口
  • 连接了刚刚上面第2步创建的sonar数据库,并设置了一些字符集等参数
  • 这里192.168.1.35:3307是上面第1步中创建的mysql,ip是当前服务器(mysql部署的服务器ip)

成功创建两个容器:
在这里插入图片描述

5、登录SonarQube

直接输入所在服务器ip和9000端口即可访问:
访问地址: http://192.168.1.35:9000(使用自己部署的服务器ip)
初始用户名: admin
初始密码: admin

我这里有四个项目了,是之前做测试的,刚创建好这里应该是0.在这里插入图片描述

6、部署Sonar Scanner(扫描客户端)

下载地址: https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner

1.下载扫描客户端

我这里下载Linux版本(也可以使用Windows版本)
在这里插入图片描述
也可以直接在服务器下载(可选)

[root@kxjl-oralce2 sonarconfig]# wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.3.0.1492-linux.zip
--2019-03-29 17:30:57--  https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.3.0.1492-linux.zip
正在解析主机 binaries.sonarsource.com (binaries.sonarsource.com)... 91.134.125.245
正在连接 binaries.sonarsource.com (binaries.sonarsource.com)|91.134.125.245|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:73866903 (70M) [application/zip]
正在保存至: “sonar-scanner-cli-3.3.0.1492-linux.zip”

下载解压后是这样:
在这里插入图片描述
2.修改配置文件

文件目录:sonar-scanner-3.3.0.1492-linux/conf

vim sonar-scanner.properties

写入以下内容:

sonar.host.url=http://192.168.1.35:9000
sonar.web.javaOpts=-server -Xms1G -Xmx521m -XX:+HeapDumpOnOutOfMemoryError
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:mysql://localhost:3307/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.web.host=0.0.0.0
sonar.web.port=9000
sonar.sourceEncoding=UTF-8
sonar.login=admin
sonar.password=admin

3.修改环境变量

vim /etc/profile

加入以下内容:

export SONAR_RUN_HOME="/home/sonarscanner/sonar-scanner-3.3.0.1492-linux"
export SONAR_RUN_BIN=$SONAR_RUN_HOME/bin;

7、运行代码扫描

1.找一个测试代码(我这里是java编写的maven项目)
2.进入项目目录
在这里插入图片描述
3.在项目目录下执行扫描命令

mvn sonar:sonar

看到构建成功就表示扫描完成了
在这里插入图片描述

进入SonarQube系统看下测试结果出来了
在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值