介绍安装Sonarube,并配置集成到Jenkins。
安装Sonarqube
# docker-compose.yml
version: '3'
services:
postgres:
container_name: postgres
image: library/postgres:13.6
restart: unless-stopped
ports:
- '5432:5432'
environment:
POSTGRES_USER: sonar
POSTGRES_PASSWORD: sonar
POSTGRES_DB: sonar
volumes:
- /opt/data/postgres/postgresql:/var/lib/postgresql
- /opt/data/postgres/data:/var/lib/postgresql/data
networks:
- sonarnet
sonarqube:
container_name: sonarqube
image: sonarqube:lts-community
restart: unless-stopped
ports:
- '9000:9000'
environment:
SONAR_JDBC_URL: jdbc:postgresql://postgres:5432/sonar
SONAR_JDBC_USERNAME: sonar
SONAR_JDBC_PASSWORD: sonar
volumes:
- /opt/data/sonar/data:/opt/sonarqube/data
- /opt/data/sonar/logs:/opt/sonarqube/logs
- /opt/data/sonar/extensions:/opt/sonarqube/extensions
depends_on:
- postgres
networks:
- sonarnet
networks:
sonarnet:
driver: bridge
调整最大虚拟内存
# 查看最大虚拟内存
cat /proc/sys/vm/max_map_count
# 设置最大虚拟内存
sysctl -w vm.max_map_count=262144
启动&停止
# 进入docker-compose.yml文件所在目录
# 启动命令
docker-compose up -d postgres
docker-compose up -d sonarqube
# 停止命令
docker-compose down
查看运行情况
[root@localhost sonar]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1e4203674abd sonarqube:lts-community "bin/run.sh bin/sona…" 2 hours ago Up 2 hours 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp sonarqube
8223fbded316 postgres:13.6 "docker-entrypoint.s…" 2 hours ago Up 2 hours 0.0.0.0:5432->5432/tcp, :::5432->5432/tcp postgres
有问题查看日志
docker logs -f [docker]
sonarqube地址
http://IP:9000/projects
Jenkins配置
生成并复制token
jenkins配置凭证
jenkins安装插件和sonar客户端
配置构建后审核代码
sonar.projectKey=xxx # sonar 上创建项目时设置
sonar.projectName=xxx # 和key一样
sonar.projectVersion=1.0
sonar.language=java
sonar.sourceEncoding=UTF-8
sonar.sources=$WORKSPACE
sonar.java.binaries=$WORKSPACE