Requirement
Docker
版本需要20.10
及以上
1
|
yum install -y docker-ce
|
SonarQube Install
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
|
sonarqube:
image: sonarqube:community
container_name: sonar
environment:
SONAR_JDBC_URL: jdbc:postgresql://128.0.100.170:5432/sonar
SONAR_JDBC_USERNAME: sonar
SONAR_JDBC_PASSWORD: sonar
volumes:
- ./sonarqube_data:/opt/sonarqube/data
- ./sonarqube_extensions:/opt/sonarqube/extensions
- ./sonarqube_logs:/opt/sonarqube/logs
ports:
- "9000:9000"
db:
image: postgres:12
container_name: sonar-db
net: host
environment:
POSTGRES_USER: sonar
POSTGRES_PASSWORD: sonar
volumes:
- ./sql_config:/var/lib/postgresql
- ./sql_data:/var/lib/postgresql/data
|
访问9000
端口即为SonarQube
服务端控制台
Scan Code
进入项目根目录, -Dsonar.sources=src
指定源码文件目录,-Dsonar.projectKey=test
指定项目名称,可以不用创建,分析检测完会自动创建不存在的项目
1
2
3
4
5
6
7
8
9
10
|
docker run --rm \
-e SONAR_HOST_URL="http://128.0.100.170:9000" \
-e SONAR_LOGIN="0f55da1097f85b7c1ef667b871c861c2538df782" \
-v "$(pwd):/usr/src" \
-v /data/sonar_cache:/opt/sonar-scanner/.sonar/cache \
sonarsource/sonar-scanner-cli \
-Dsonar.projectKey=test \
-Dsonar.sources=src
# JAVA项目还需要指定classes文件目录,不然报错
-Dsonar.java.binaries=target
|
关键的SONAR_LOGIN
如何而来?登陆SonarQube
-
Administraotr
—>Encrypto
–>Generate Secret Key
将创建的密钥复制备用,下一步会用到
-
Projects
–>Create Project
–>输入相关名字,这里随便输入字符串—>Locally
—>Generate a token
粘贴前面复制的内容 –> Generate
返回的 :=
后面的内容即为Token