Docker部署sonarqube代码质量检查

Posted mercury-linux

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker部署sonarqube代码质量检查相关的知识,希望对你有一定的参考价值。

地址规划:

主机名 公网ip地址 服务
lb01 10.0.0.5 sonarqube、docker、Jenkins
web01 10.0.0.7 tomcat
web02 10.0.0.8 tomcat

部署sonarqube服务端

安装docker

sonarqube镜像地址:https://pan.baidu.com/s/1TBhj8gYvJy1eedL-95B0Hg 提取码:6ioq

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum install docker -y
systemctl start docker
systemctl enable docker

导入sonarqube镜像

docker load -i docker_sonarqube_7.tar.gz
docker load -i docker-mysql-5.7.tar.gz

启动docker容器

注:docker镜像里面已经安装了openjdk,sonarqube服务使用Denbian系统的镜像

#启动数据库
docker run --name mysql-sonar -e MYSQL_ROOT_PASSWORD=mysql -e MYSQL_DATABASE=sonar -e MYSQL_USER=sonar -e MYSQL_PASSWORD=sonar -v /data/mysql:/var/lib/mysql -p 33066:3306 -d mysql:5.7
#启动sonarqube docker run
-d --name sonarqube -p 9000:9000 -p 9092:9092 --link=mysql-sonar:mysql -e SONARQUBE_JDBC_USERNAME=sonar -e SONARQUBE_JDBC_PASSWORD=sonar -e SONARQUBE_JDBC_URL="jdbc:mysql://mysql:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false" sonarqube:7.0 #查看端口 netstat -lntup tcp6 0 0 :::9000 :::* LISTEN 36254/docker-proxy- tcp6 0 0 :::33066 :::* LISTEN 36114/docker-proxy-

登录:10.0.0.5:9000

注:默认用户 admin 默认密码 admin

技术图片

保存token:

注:下面操作很重要,后期会使用

技术图片

7b4efa14d62b35ddf8906cb2a2f01699ba887732

检查maven:

技术图片

mvn sonar:sonar   -Dsonar.host.url=http://10.0.0.5:9000 
  -Dsonar.login=7b4efa14d62b35ddf8906cb2a2f01699ba887732

检查html

技术图片

sonar-scanner   -Dsonar.projectKey=html   -Dsonar.sources=.   -Dsonar.host.url=http://10.0.0.5:9000 
  -Dsonar.login=7b4efa14d62b35ddf8906cb2a2f01699ba887732

sonar汉化

方式一:直接安装(网络慢会下载失败)

技术图片

方式二:下载插件安装

兼容表查看:

技术图片

地址:https://github.com/SonarQubeCommunity/sonar-l10n-zh

旧版本下载地址:https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases/latest

注:这里下载的是1.20版本,版本不兼容服务会起不来

#下载jar
https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases/download/sonar-l10n-zh-plugin-1.20/sonar-l10n-zh-plugin-1.20.jar

#jar包放入docker目录

docker cp  sonar-l10n-zh-plugin-1.20.jar sonarqube:/opt/sonarqube/extensions/plugins/
docker restart sonarqube
#查看启动情况
docker logs -f sonarqube

#重新登录网页查看

技术图片

安装sonar-scaner扫描器

安装jdk

jdk下载地址:https://www.oracle.com/java/technologies/javase-jdk8-downloads.html

yum localinstall jdk-8u241-linux-x64.rpm -y
java -version

安装扫描器

sonar-scaner下载地址:https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/

wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.3.0.2102.zip
unzip sonar-scanner-cli-4.3.0.2102.zip
mv sonar-scanner-4.3.0.2102 /usr/local/sonar-scanner
ln -s /usr/local/sonar-scanner/bin/sonar-scanner /usr/bin/
sonar-scanner

扫描html项目代码

插件下载地址:https://binaries.sonarsource.com/Distribution/

cd /opt/yiliao/
sonar-scanner   -Dsonar.projectKey=html   -Dsonar.sources=.   -Dsonar.host.url=http://10.0.0.5:9000 
  -Dsonar.login=7b4efa14d62b35ddf8906cb2a2f01699ba887732

扫描结果:

技术图片

注:这里只检查了javascript的代码,因为没有安装检查html的插件

下载html插件重新检查:

#下载
wget https://binaries.sonarsource.com/Distribution/sonar-html-plugin/sonar-html-plugin-3.2.0.2082.jar

#导入容器内
docker cp sonar-html-plugin-3.2.0.2082.jar  sonarqube:/opt/sonarqube/extensions/plugins/
docker restart sonarqube
docker logs -f sonarqube


#重新检查
sonar-scanner   -Dsonar.projectKey=html   -Dsonar.sources=.   -Dsonar.host.url=http://10.0.0.5:9000 
  -Dsonar.login=7b4efa14d62b35ddf8906cb2a2f01699ba887732

技术图片

在Jenkins安装sonarqube插件

安装插件

技术图片

sonarqube服务端地址

配置凭证:

技术图片

全局配置:

技术图片

sonar-scanner位置

技术图片

把sonarqube集成到job中

全局配置jdk

## 找到jdk目录
rpm -qpl jdk-8u241-linux-x64.rpm  | grep bin
/usr/java/jdk1.8.0_241-amd64

技术图片

job配置参数

技术图片

sonar.projectKey=标识
sonar.projectName=项目名
sonar.projectVersion=1.0
sonar.sources=.
sonar.java.binaries=.
sonar.sourceEncoding=UTF-8
sonar.language=java

官方参数文档:https://docs.sonarqube.org/latest/analysis/analysis-parameters/

job进行项目构建

技术图片技术图片

 

以上是关于Docker部署sonarqube代码质量检查的主要内容,如果未能解决你的问题,请参考以下文章

持续代码质量管理-SonarQube-7.3部署

自动化代码审查平台: 基于Docker Compose整合Jenkins + SonarQube

自动代码质量分析(GitLab+JenKins+SonarQube)

Docker 搭建代码质量检测平台 SonarQube

jenkins集成sonarQube实现代码质量检查

Jenkins集成SonarQube实现代码质量检查