目录
1、安装部署 sonarqube7.8+postgres13.4
目的:jenkins更新完项目后自动调取sonar任务达到每次更新项目自动更新sonar
1、安装部署 sonarqube7.8+postgres13.4
拉取镜像
docker pull postgres:13.4
docker pull sonarqube:7.8-community
创建自定义网络
docker network create sonar-postgres
创建挂载目录
mkdir -p /home/sonar/postgres/postgresql
mkdir -p /home/sonar/postgres/data
mkdir -p /data/sonarqube
修改系统参数
echo "vm.max_map_count=262144" > /etc/sysctl.conf
sysctl -p
启用容器
docker run --name postgres -d -p 5432:5432 --net sonar-postgres \
-v /home/sonar/postgres/postgresql:/var/lib/postgresql \
-v /home/sonar/postgres/data:/var/lib/postgresql/data \
-v /etc/localtime:/etc/localtime:ro \
-e POSTGRES_USER=sonar \
-e POSTGRES_PASSWORD=sonar \
-e POSTGRES_DB=sonar \
-e TZ=Asia/Shanghai \
--restart always \
--privileged=true \
--network-alias postgres \
postgres:13.4
创建测试容器复制sonar文件到挂载目录
docker run -d --name sonartest sonarqube:7.8-community
docker cp sonartest:/opt/sonarqube/conf /data/sonarqube
docker cp sonartest:/opt/sonarqube/extensions /data/sonarqube
chmod -R 777 /data/sonarqube/
docker stop sonartest
docker rm sonartest
创建sonar容器
docker run -d --name sonar -p 9090:9000 \
-e ALLOW_EMPTY_PASSWORD=yes \
-e SONARQUBE_DATABASE_USER=sonar \
-e SONAR_JDBC_USERNAME=sonar \
-e SONAR_JDBC_PASSWORD=sonar \
-e SONARQUBE_JDBC_URL="jdbc:postgresql://postgres:5432/sonar" \
--net sonar-postgres \
--privileged=true \
--restart always \
-v /data/sonarqube/logs:/opt/sonarqube/logs \
-v /data/sonarqube/conf:/opt/sonarqube/conf \
-v /data/sonarqube/data:/opt/sonarqube/data \
-v /data/sonarqube/extensions:/opt/sonarqube/extensions\
sonarqube:7.8-community
打开网站ip+9090配置项目 用户名密码默认admin
安装中文包
https://github.com/xuhuisheng/sonar-l10n-zh/releases/tag/sonar-l10n-zh-plugin-1.28
下载jar
cp sonar-l10n-zh-plugin-1.28.jar /data/sonarqube/extensions/plugins
重启sonar容器
登录创建项目选择maven
2、初始化sonar项目
登录创建项目选择maven
在要执行sonar的maven项目根目录执行复制的命令 (复制存储一份此命令 后边有用到)
mvn sonar:sonar \
-Dsonar.projectKey=xxx \
-Dsonar.host.url=xxx \
-Dsonar.login=xxx
等待一会儿就会看到检测的结果
3、集成jenkins
创建一个自由风格的的jenkins项目
在源码管理中写入git地址
在构建环境中增加构建步骤->Execute shell
这个脚本就是刚才在项目目录下执行的脚本
构建成功后可以将此任务加入到项目的构建后操作的任务中达到项目更新sonar也更新