摘要:
本文主要介绍了基于
docker
环境的sonarqube
的安装和简单使用
系统配置
/etc/sysctl.conf
文件编辑
因为
sonar
使用了es
所以需要更改两个文件句柄配置,内容如下
vm.max_map_count=524288
fs.file-max=131072
- 生效文件
sysctl -p
服务搭建
简单搭建环境可以使用默认的
H2
数据库,但是为了以后的迁移推荐使用其他数据库进行持久化,本实例采用了postgres
数据库
docker-compose.yml
配置
version: "3"
services:
sonar-postgres:
image: postgres:14.4
networks:
- default
container_name: sonar-postgres
volumes:
- ./postgres-data:/var/lib/postgresql/data
environment:
- POSTGRES_USER=sonar
- POSTGRES_PASSWORD=sonar@123
- TZ=Asia/Shanghai
sonarqube:
image: sonarqube:8.9-community
container_name: sonarqube
networks:
- default
environment:
- TZ=Asia/Shanghai
- SONARQUBE_JDBC_USERNAME=sonar
- SONARQUBE_JDBC_PASSWORD=sonar@123
- SONARQUBE_JDBC_URL=jdbc:postgresql://sonar-postgres:5432/sonar
volumes:
- "./data:/opt/sonarqube/data"
- "./logs:/opt/sonarqube/logs"
- "./extensions:/opt/sonarqube/extensions"
ports:
- "9000:9000"
depends_on:
- sonar-postgres
networks:
default:
external:
name: huzhihui
- 启动
docker-compose up -d
- 查看服务
[root@localhost sonarqube]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
878bc4a7287f sonarqube:8.9-community "bin/run.sh bin/sona…" 20 minutes ago Up 20 minutes 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp sonarqube
ea89a5311559 postgres:14.4 "docker-entrypoint.s…" 20 minutes ago Up 20 minutes 5432/tcp sonar-postgres
使用说明
docker-compose
挂载的文件夹说明
./postgres-data:/var/lib/postgresql/data
该文件夹保存了数据库的物理存储文件
./data:/opt/sonarqube/data
该文件夹保存了
sonarqube
的数据文件
./logs:/opt/sonarqube/logs
sonarqube
的日志
./extensions:/opt/sonarqube/extensions
sonarqube
的插件,复制进去后需要重启容器才能加在插件
登陆系统(我本地是http://192.168.137.100:9000/
)
默认用户名和密码均是
admin
- 登陆成功后会让你修改默认密码,修改了即可
- 中文插件使用
在
Administration
菜单下的Marketplace
搜索插件,然后点击install
后并重启容器
- 创建项目
本文用做测试的是
maven
项目,按照步骤会输出如下
- 项目
pom.xml
配置
在
<project>
标签内新增如下配置
<build>
<pluginManagement>
<plugins>
<!--sonar 配置 -->
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.9.0.2155</version>
</plugin>
</plugins>
</pluginManagement>
</build>
- 项目中执行
mvn
构建
mvn sonar:sonar \
-Dsonar.projectKey=TT \
-Dsonar.host.url=http://192.168.137.100:9000 \
-Dsonar.login=28cce84a5bc61428c0a6d142f71af91757e54858
- 最后获得结果
其他好用的插件推荐
- 阿里
p3c
插件
下载地址:去下载
- 多分支扫描插件
下载地址:去下载
- 安装方式
复制到插件文件夹
${SONAR_HOME}/extensions/plugins
下面,然后重启sonar
- 阿里
p3c
插件使用方式
我们可以搜索到规则
然后创建质量配置并应用
p3c
- 多分支扫描插件使用方式
//maven项目
$ mvn clean verify sonar:sonar -Dmaven.test.skip=true -Dsonar.branch=master
//非maven项目 在sonar-project.properties文件里,增加sonar.branch.name的配置