一、SonarQube使用介绍
SonarQube 是一个开源的代码分析平台, 用来持续分析和评测项目源代码的质量。 通过SonarQube我们可以检测出项目中重复代码, 潜在bug, 代码规范,安全性漏洞等问题, 并通过SonarQube web UI展示出来。
二、部署SonarQube
跳过docker 安装
2.1、sysctl设置
-
Linux
echo "vm.max_map_count=262144" >> /etc/sysctl.conf
sysctl -p
-
Mac
启动命令行执行
回车然后确认输入配置screen ~/Library/Containers/com.docker.docker/Data/vms/0/ttysysctl -w vm.max_map_count=262144 -
Windows and macOS with Docker Desktop
通过docker-machine进行设置docker-machine ssh sudo sysctl -w vm.max_map_count=262144 -
Windows with Docker Desktop WSL 2 backend
wsl -d docker-desktop sysctl -w vm.max_map_count=262144
2.2、docker-compose安装
curl -L \
"[<https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$>](<https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$>)(uname -s)-$(uname -m)" -o \
/usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
2.3、拉取镜像[可跳过]
docker pull sonarqube:8.2-community
docker pull postgres:12
2.4、创建目录
mkdir -p /opt/sonarqube/{conf,data,logs,extensions}
mkdir -p /opt/postgres/{postgresql,data}
chmod -R 777 /opt/sonarqube
2.5、docker-compose.yml
version: '3'
services:
postgres:
image: postgres:12
restart: always
container_name: postgres
ports:
- 5432:5432
volumes:
- /opt/postgres/postgresql/:/var/lib/postgresql
- /opt/postgres/data/:/var/lib/postgresql/data
environment:
TZ: Asia/Shanghai
POSTGRES_USER: sonar
POSTGRES_PASSWORD: sonar123
POSTGRES_DB: sonar
networks:
- sonar-network
sonar:
image: sonarqube:8.2-community
restart: always
container_name: sonar
depends_on:
- postgres
volumes:
- /opt/sonarqube/extensions:/opt/sonarqube/extensions
- /opt/sonarqube/logs:/opt/sonarqube/logs
- /opt/sonarqube/data:/opt/sonarqube/data
- /opt/sonarqube/conf:/opt/sonarqube/conf
ports:
- 9000:9000
environment:
SONARQUBE_JDBC_USERNAME: sonar
SONARQUBE_JDBC_PASSWORD: sonar123
SONARQUBE_JDBC_URL: jdbc:postgresql://postgres:5432/sonar
networks:
- sonar-network
networks:
sonar-network:
driver: bridge
2.6、docker-compose 启动
docker-compose up -d
docker-compose -f sonar-docker-compose.yml up -d
2.7、访问地址: http://127.0.0.1:9000/
默认账号:admin 密码:admin