
juntossomosmais/dotnet-sonar本镜像基于dotnet SDK构建,集成了dotnet sonarscanner工具和Java运行环境,专门用于在.NET项目中执行Sonar代码质量分析。通过整合必要的依赖组件,可简化.NET项目与SonarQube的集成流程,快速实现代码缺陷、安全漏洞及规范问题的自动化检测。
bashdocker run -it --rm \ -v [本地项目路径]:/app \ -e SONAR_HOST_URL=[SonarQube服务器URL] \ -e SONAR_TOKEN=[SonarQube访问令牌] \ -e SONAR_PROJECT_KEY=[项目标识] \ [镜像名称] \ bash -c "cd /app && dotnet sonarscanner begin /k:\"$SONAR_PROJECT_KEY\" /d:sonar.host.url=\"$SONAR_HOST_URL\" /d:sonar.login=\"$SONAR_TOKEN\" && dotnet build && dotnet sonarscanner end /d:sonar.login=\"$SONAR_TOKEN\""
| 参数 | 类型 | 说明 |
|---|---|---|
-v [本地项目路径]:/app | 挂载卷 | 将本地.NET项目目录映射到容器内的/app工作目录 |
SONAR_HOST_URL | 环境变量 | 必选,SonarQube服务器的访问地址(如:[***]) |
SONAR_TOKEN | 环境变量 | 必选,SonarQube用户访问令牌(在SonarQube个人中心生成) |
SONAR_PROJECT_KEY | 环境变量 | 必选,项目在SonarQube中的唯一标识(需提前在SonarQube创建) |
可通过添加额外参数自定义分析行为:
bash# 指定项目名称和版本 docker run ... \ -e SONAR_PROJECT_NAME="MyApp" \ -e SONAR_PROJECT_VERSION="1.0.0" \ ... \ bash -c "cd /app && dotnet sonarscanner begin /k:\"$SONAR_PROJECT_KEY\" /n:\"$SONAR_PROJECT_NAME\" /v:\"$SONAR_PROJECT_VERSION\" ..." # 排除特定目录分析 docker run ... \ bash -c "cd /app && dotnet sonarscanner begin ... /d:sonar.exclusions=\"**/obj/**,**/bin/**\" ..."
yamlversion: '3' services: sonar_analysis: image: [镜像名称] volumes: - ./src:/app environment: - SONAR_HOST_URL=[***] - SONAR_TOKEN=sqa_***abcdef - SONAR_PROJECT_KEY=my-dotnet-project command: > bash -c "cd /app && dotnet sonarscanner begin /k:\"$$SONAR_PROJECT_KEY\" /d:sonar.host.url=\"$$SONAR_HOST_URL\" /d:sonar.login=\"$$SONAR_TOKEN\" && dotnet build && dotnet sonarscanner end /d:sonar.login=\"$$SONAR_TOKEN\""
chmod 755设置目录权限)--memory参数)manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务