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進行項目構建

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM