SonarQube
是一款代码质量管理工具,在国内有大量拥趸。本文仅记述通过docker-compose
安装其社区版的方法,不对其本身的分析能力做评述。
为了偷懒和方便测试,我们先编写一个Makefile
。
.PHONY : clean
mkdir:
mkdir -p "data/postgres/data"
mkdir -p "data/postgres/postgresql"
mkdir -p "data/postgres/postgresql"
mkdir -p "data/sonarqube/conf"
mkdir -p "data/sonarqube/data"
mkdir -p "data/sonarqube/extensions"
mkdir -p "data/sonarqube/logs"
clean:
rm -rf ./data/postgres/data/*
rm -rf ./data/postgres/postgresql/*
rm -rf ./data/sonarqube/data/*
rm -rf ./data/sonarqube/extensions/*
rm -rf ./data/sonarqube/logs/*
运行make
命令,初始化好我们需要挂载的本地目录。在相同的目录下,创建docker-compose.yml
文件,并写入以下内容:
version: '3'
services:
postgres:
image: 'postgres:12-alpine'
restart: always
container_name: postgres
volumes:
- ./data/postgres/postgresql/:/var/lib/postgresql
- ./data/postgres/data/:/var/lib/postgresql/data
environment:
TZ: Asia/Shanghai
POSTGRES_USER: sonar
POSTGRES_PASSWORD: sonar
POSTGRES_DB: sonar
sonar:
image: 'sonarqube:8.5-community'
container_name: sonar
depends_on:
- postgres
volumes:
- ./data/sonarqube/extensions:/opt/sonarqube/extensions
- ./data/sonarqube/logs:/opt/sonarqube/logs
- ./data/sonarqube/data:/opt/sonarqube/data
- ./data/sonarqube/conf:/opt/sonarqube/conf
ports:
- 9000:9000
environment:
SONARQUBE_JDBC_USERNAME: sonar
SONARQUBE_JDBC_PASSWORD: sonar
SONARQUBE_JDBC_URL: jdbc:postgresql://postgres:5432/sonar
运行docker-compose up -d
,安装整个SonarQube
和其依赖的服务镜像。如果销毁这些容器后,可以运行make clean
命令,清除资源。