參考文檔
- 鏡像地址:
https://hub.docker.com/_/sonarqube/tags
Docker
部署文檔地址
Installing from Docker | SonarQube Docs
Docker-compose
文檔部署地址:
Installing from Docker | SonarQube Docs
部署鏡像
2.1 docker部署
# 宿主機執行
$. vi /etc/sysctl.conf
# 添加
vm.max_map_count = 655360# 刷新配置, 使其生效
$. sysctl -p# 下載鏡像
# docker pull sonarqube:community
docker pull sonarqube:10.3.0-community# 嵌入式數據庫示例
$ docker run --rm \
-p 9000:9000 \
-v sonarqube_extensions:/opt/sonarqube/extensions \
<image_name># 第三方數據庫示例
docker run -d --name sonarqube \
-p 9000:9000 \
-e SONAR_JDBC_URL=... \
-e SONAR_JDBC_USERNAME=... \
-e SONAR_JDBC_PASSWORD=... \
-v sonarqube_data:/opt/sonarqube/data \
-v sonarqube_extensions:/opt/sonarqube/extensions \
-v sonarqube_logs:/opt/sonarqube/logs \
<image_name># use
docker run -d --name sonarqube \
-p 9000:9000 \
-e SONAR_JDBC_URL=... \
-e SONAR_JDBC_USERNAME=... \
-e SONAR_JDBC_PASSWORD=... \
-v sonarqube_data:/opt/sonarqube/data \
-v sonarqube_extensions:/opt/sonarqube/extensions \
-v sonarqube_logs:/opt/sonarqube/logs \
sonarqube:10.3.0-community
2.2 docker-compose
部署(use)
啟動命令
# 宿主機執行
$. vi /etc/sysctl.conf
# 添加
vm.max_map_count = 655360# 刷新配置, 使其生效
$. sysctl -p$. mkdir /usr/local/sonarqube -p
$. cd /usr/local/sonarqube
$. mkdir -p sonarqube_data sonarqube_extensions sonarqube_logs sonarqube_pdf
$. chmod 777 s* -R
$. vi docker-compose.yml$. docker-compose up $. docker exec -it sonarqube-cn mkdir /opt/sonarqube/pdf-files -p
$. docker exec -it sonarqube-cn chmod 777 /opt/sonarqube/pdf-files -R$. docker-compose up -d
$. docker-compose down
$. docker-compose stop
$. docker-compose restart# logs
$. docker-compose logs
$. docker-compose logs -f --tail=100 -t sonarqube-vm
$. docker-compose logs -f -n=100 -t sonarqube-vm$. docker exec -it kafka-1 /bin/bash# ======================= 其它命令參考 ==================== #
# stop 指定容器
docker-compose stop kafka# 刪除容器
docker-compose rm -f kafka
docker-compose
文件
version: "3"services:sonarqube:hostname: sonarqube-vmcontainer_name: sonarqube-cn# image: sonarqube:10.3.0-communityimage: sonarqube:9.9.3-community#sysctls:# net.core.somaxconn: 10240# vm.max_map_count: 655360privileged: true restart: always depends_on:- dbenvironment:SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonarSONAR_JDBC_USERNAME: sonarSONAR_JDBC_PASSWORD: sonarvolumes:- ./sonarqube_data:/opt/sonarqube/data- ./sonarqube_pdf:/opt/sonarqube/pdf-files- ./sonarqube_extensions:/opt/sonarqube/extensions- ./sonarqube_logs:/opt/sonarqube/logsports:- "9000:9000"db:hostname: postgresql-vmcontainer_name: postgresql-cnprivileged: true restart: alwaysimage: postgres:12environment:POSTGRES_USER: sonarPOSTGRES_PASSWORD: sonarvolumes:- ./postgresql:/var/lib/postgresql- ./postgresql_data:/var/lib/postgresql/data#volumes:
# sonarqube_data:
# sonarqube_extensions:
# sonarqube_logs:
# postgresql:
# postgresql_data:
訪問和配置中文界面
3.1 訪問頁面
運行成功后,瀏覽器訪問localhost:9000
,賬號密碼均為admin
,配置中文界面,并重啟。
路徑: administrator -> marketplace -> 搜索chinese
將jar包放在/usr/local/sonarqube/sonarqube_extensions/downloads/
文件夾下。
2.3 重啟后即為中文界面
重啟后Sonarqube會自動將jar包插件移動到/usr/local/sonarqube/sonarqube_extensions/plugins/
文件夾下。
安裝PDF插件
4.1 上傳sonar-pdf-plugin
插件
插件源碼地址:
- sonar-pdf-plugin: sonarqube生成pdf報告插件,支持 5.5--7.x
下載地址:
- sonar-pdfreport-en-plugin-4.0.1.jar資源-CSDN文庫
- sonar-pdfreport-zh-plugin-4.0.1.jar資源-CSDN文庫
適用SonarQube版本 : 5.5--9.9。
把下載好的插件放到Sonarqube安裝目錄的
/usr/local/sonarqube/sonarqube_extensions/downloads/
目錄下,
重啟Sonarqube服務即可。
重啟后Sonarqube會自動將jar包插件移動到/usr/local/sonarqube/sonarqube_extensions/plugins/
文件夾下。
4.2 配置PDF導出插件
# 服務重啟后可以看到配置頁如下,PDF report為添加插件后新增頁簽。
填入Sonarqube管理員的username
和password
并保存,需要將原分析項目刪除并重新分析項目。
4.3 創建測試項目
1)創建新令牌
注意:這里以Java語言Maven項目為例,其他語言的項目請自行測試
2)執行SonarQube掃描
進入要分析項目的根目錄(當前目錄下必須有pom.xml)cmd進入該目錄下的命令界面執行mvn package sonar:sonar(舊版本可執行任意mvn命令后綴添加sonar:sonar進行代碼分析,但較高版本sonar分析代碼需要jar/war包)。
注意:需要mvn工具
mvn sonar:sonar \
-Dsonar.projectKey=Test \
-Dsonar.host.url= http://xxx.com \
-Dsonar.login=bd5695a663d82fac851e295fac3e43ccd3406136
3)成功分析代碼并產出PDF會額外打印如下信息
4)下載PDF
點擊項目下"更多 -->> Download Pdf Report"
至此,Sonarqube導出PDF分析報告部署完畢。