
galilee/sonar-scannerSonar Scanner Docker镜像是Sonar Scanner的容器化版本,将代码质量分析工具Sonar Scanner封装为Docker镜像,提供便捷、一致的代码质量与安全性扫描能力。通过容器化部署,可快速集成到各类环境中,无需在主机系统中单独安装Sonar Scanner及其依赖,降低环境配置复杂度,专注于代码分析本身。
[***])。SONAR_PROJECT_KEY)和访问令牌(SONAR_TOKEN,具有项目分析权限)。通过挂载项目目录至容器,并指定SonarQube连接信息,执行扫描:
bashdocker run --rm \ -v "$(pwd):/usr/src" \ # 挂载本地项目目录到容器内/usr/src -e SONAR_HOST_URL="[***]" \ # SonarQube服务器URL -e SONAR_TOKEN="your-sonar-token" \ # SonarQube访问令牌 -e SONAR_PROJECT_KEY="my-project-key" \ # 项目唯一标识 sonarsource/sonar-scanner-cli
说明:
-v "$(pwd):/usr/src":将当前目录(项目根目录)挂载到容器内的/usr/src,确保扫描器可访问项目代码。-e)用于配置扫描参数,也可通过命令行参数(如-Dsonar.host.url=...)覆盖。除基础连接信息外,可通过环境变量或命令行参数指定更多扫描配置:
bashdocker run --rm \ -v "$(pwd):/usr/src" \ -e SONAR_HOST_URL="[***]" \ -e SONAR_TOKEN="your-sonar-token" \ -e SONAR_PROJECT_KEY="my-project-key" \ -e SONAR_PROJECT_NAME="My Project" \ # 项目名称(可选,默认与项目密钥一致) -e SONAR_PROJECT_VERSION="1.0.0" \ # 项目版本(可选) -e SONAR_EXCLUSIONS="**/node_modules/**,****/**" \ # 排除扫描的目录(可选) sonarsource/sonar-scanner-cli
创建docker-compose.yml文件,集成到项目部署流程:
yamlversion: '3' services: sonar-scanner: image: sonarsource/sonar-scanner-cli volumes: - ./:/usr/src # 挂载项目目录 environment: - SONAR_HOST_URL=[***] # 假设SonarQube服务名为sonarqube(同一网络内) - SONAR_TOKEN=your-sonar-token - SONAR_PROJECT_KEY=my-project-key - SONAR_PROJECT_NAME=My Project networks: - sonar-network # 与SonarQube服务器共享网络(若在同一compose文件中) networks: sonar-network: external: true # 或使用已存在的网络
执行扫描:
bashdocker-compose run sonar-scanner
| 参数类型 | 参数名 | 描述 |
|---|---|---|
| 环境变量/参数 | SONAR_HOST_URL | SonarQube服务器URL(必需),如[***]。 |
| 环境变量/参数 | SONAR_TOKEN | SonarQube访问令牌(必需),用于认证,可在SonarQube个人账号设置中生成。 |
| 环境变量/参数 | SONAR_PROJECT_KEY | 项目唯一标识(必需),在SonarQube中创建项目时定义。 |
| 环境变量/参数 | SONAR_PROJECT_NAME | 项目名称(可选),默认与SONAR_PROJECT_KEY一致。 |
| 环境变量/参数 | SONAR_PROJECT_VERSION | 项目版本(可选),用于区分不同版本的扫描结果。 |
| 环境变量/参数 | SONAR_EXCLUSIONS | 排除扫描的文件/目录(可选),支持通配符,如**/node_modules/**。 |
| 命令行参数 | -Dsonar.branch.name | 指定分支名称(如feature/login),用于分支级分析结果隔离。 |
-u $(id -u):$(id -g)指定用户ID)。-e SONAR_SCANNER_OPTS="-Xmx2G"调整JVM内存限制。/etc/ssl/certs)。-Dsonar.xxx)优先级高于环境变量,可用于临时覆盖配置。

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务