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进行项目构建