代码扫描工具SonarQube+Scanner
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:可选,排除的目录,该目录不扫描,多个目录用英文逗号(,)隔开