代码扫描工具SonarQube+Scanner
software
2021-05-20 15:54
1、使用Docker安装,docker-compose.yaml
version: "3"
services:
sonarqube:
image: sonarqube:community
depends_on:
- db
environment:
SONAR_JDBC_URL: jdbc:postgresql://db: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"
networks:
network-01:
aliases:
- sonarqube-net1
db:
image: postgres:12
environment:
POSTGRES_USER: sonar
POSTGRES_PASSWORD: sonar
volumes:
- postgresql:/var/lib/postgresql
- postgresql_data:/var/lib/postgresql/data
networks:
network-01:
aliases:
- postgres-net1
volumes:
sonarqube_data:
sonarqube_extensions:
sonarqube_logs:
postgresql:
postgresql_data:
networks:
network-01:
driver: bridge
name: network-01
2、通过 9000 端口登录web后台
3、通过容器扫描
docker run \
--rm \
--network network-01 \
-e SONAR_HOST_URL="扫描服务器服务" \
-e SONAR_LOGIN="令牌" \
-v "项目路径:/usr/src" \
sonarsource/sonar-scanner-cli -Dsonar.projectKey=项目标识 -Dsonar.exclusions=排除目录1,排除目录2
3.1 扫描参数说明
#1、network-01:可选,两个容器共用的网络,须与第1步创建的容器服务一致,保证扫描容器能访问第一容器
#2、扫描服务器服务:第1步创建的容器服务,如:http://192.168.1.2:9000
#3、令牌:后台新建项目时创建的令牌
#4、项目路径:扫描的目录,如:/etc/nginx/html/project1
#5、-Dsonar.projectKey:必须,后台新建项目时的项目标识
#6、-Dsonar.exclusions:可选,排除的目录,该目录不扫描,多个目录用英文逗号(,)隔开