Docker部署sonarqube代码质量检查

地址规划:

主机名公网ip地址服务
lb0110.0.0.5sonarqube、docker、Jenkins
web0110.0.0.7tomcat
web0210.0.0.8tomcat

部署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

Docker部署sonarqube代码质量检查

保存token:

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

Docker部署sonarqube代码质量检查

7b4efa14d62b35ddf8906cb2a2f01699ba887732

检查maven:

Docker部署sonarqube代码质量检查

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

检查html:

Docker部署sonarqube代码质量检查

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

sonar汉化

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

Docker部署sonarqube代码质量检查

方式二:下载插件安装

兼容表查看:

Docker部署sonarqube代码质量检查

地址: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

#重新登录网页查看

Docker部署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

扫描结果:

Docker部署sonarqube代码质量检查

注:这里只检查了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

Docker部署sonarqube代码质量检查

在Jenkins安装sonarqube插件

安装插件

Docker部署sonarqube代码质量检查

sonarqube服务端地址

配置凭证:

Docker部署sonarqube代码质量检查

全局配置:

Docker部署sonarqube代码质量检查

sonar-scanner位置

Docker部署sonarqube代码质量检查

把sonarqube集成到job中

全局配置jdk

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

Docker部署sonarqube代码质量检查

job配置参数

Docker部署sonarqube代码质量检查

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代码质量检查Docker部署sonarqube代码质量检查