0%

Docker-Compose 安装SonarQube

SonarQube 是一个用于代码质量管理的开源平台,用于管理源代码的质量。

简介

SonarQube 是一个用于代码质量管理的开源平台,用于管理源代码的质量。

官方网址:https://www.sonarsource.com/products/sonarqube/

安装

基础环境

安装docker

1
yum install docker -y

安装docker-compose

1
2
3
4
5
wget https://github.com/docker/compose/releases/download/v2.19.1/docker-compose-linux-x86_64
mv docker-compose-linux-x86_64 docker-compose
chmod +x docker-compose
mv docker-compose /usr/local/bin/
docker-compose -v

创建目录

1
2
3
mkdir -p /data/servers/sonarqube/data
cd /data/servers/sonarqube/data
mkdir -p postgresql postgresql_data sonarqube_data sonarqube_extensions sonarqube_logs

配置LDAP

1
vim /data/servers/sonarqube/data/sonar.properties
1
2
3
4
ldap.url=ldap://ldap.zhaohongye.com:389
ldap.bindDn=cn=admin,dc=zhaohongye,dc=com
ldap.bindPassword=password
ldap.user.baseDn=ou=people,dc=zhaohongye,dc=com

docker-compose.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
version: "3"

services:
sonarqube:
image: sonarqube
depends_on:
- db
environment:
SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar
SONAR_JDBC_USERNAME: sonar
SONAR_JDBC_PASSWORD: Ixv9BDUvWyilminV
volumes:
- /data/servers/sonarqube/data/sonarqube_data:/opt/sonarqube/data
- /data/servers/sonarqube/data/sonarqube_extensions:/opt/sonarqube/extensions
- /data/servers/sonarqube/data/sonarqube_logs:/opt/sonarqube/logs
- /data/servers/sonarqube/data/sonar.properties:/opt/sonarqube/conf/sonar.properties
ports:
- "9000:9000"
privileged: true
db:
image: postgres
environment:
POSTGRES_USER: sonar
POSTGRES_PASSWORD: Ixv9BDUvWyilminV
volumes:
- /data/servers/sonarqube/data/postgresql:/var/lib/postgresql
- /data/servers/sonarqube/data/postgresql_data:/var/lib/postgresql/data
privileged: true

配置内核参数

1
2
echo "vm.max_map_count=262144" >> /etc/sysctl.conf
sysctl -p | grep vm.max_map_count

启动服务

1
docker-compose up -d

检查9000端口是否处于监听状态,浏览器访问http://localhost:9000, 账号为admin,初始密码为admin

CICD集成

1
2
3
4
5
6
7
mvn sonar:sonar -U \
-Dsonar.projectKey=${service_name} \
-Dsonar.host.url=https://sonar.zhaohongye.com \
-Dsonar.login=token \
-Dsonar.java.binaries=target/sonar

#分别对应服务名称、sonarqube地址、账号token

效果