参考文档
- 镜像地址:
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-vm
container_name: sonarqube-cn
# image: sonarqube:10.3.0-community
image: sonarqube:9.9.3-community
#sysctls:
# net.core.somaxconn: 10240
# vm.max_map_count: 655360
privileged: true
restart: always
depends_on:
- db
environment:
SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar
SONAR_JDBC_USERNAME: sonar
SONAR_JDBC_PASSWORD: sonar
volumes:
- ./sonarqube_data:/opt/sonarqube/data
- ./sonarqube_pdf:/opt/sonarqube/pdf-files
- ./sonarqube_extensions:/opt/sonarqube/extensions
- ./sonarqube_logs:/opt/sonarqube/logs
ports:
- "9000:9000"
db:
hostname: postgresql-vm
container_name: postgresql-cn
privileged: true
restart: always
image: postgres:12
environment:
POSTGRES_USER: sonar
POSTGRES_PASSWORD: sonar
volumes:
- ./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插件
插件源码地址:
下载地址:
适用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分析报告部署完毕。