在将静态分析集成到 CI/CD 之前,可以先在本地试运行。本文根据 Qiita 原文,使用 Docker 启动 SonarQube Server,并通过 SonarScanner CLI 分析示例代码。
目标与准备
扫描源代码,并在 SonarQube 页面查看 Bug 和代码异味。准备 Docker Desktop 或 Docker Engine,以及以下 Python 文件:
| |
启动 SonarQube Server
| |
在浏览器打开 http://localhost:9000,使用初始用户名和密码 admin / admin 登录。首次登录后需要修改密码。

准备项目、Token 和 URL
在页面中选择 [Create a local project],创建显示名称为 hello-world 的项目。然后进入 My Account > Security 创建 Token,例如命名为 scanner-cli。关闭页面前请复制 Token。




Docker Desktop(Windows/Mac)从容器访问主机时使用 http://host.docker.internal:9000。Linux 环境可使用 http://localhost:9000 或容器 IP。
使用 SonarScanner CLI 扫描
进入 main.py 所在目录,将 Token 替换后运行:
| |
--rm 会在扫描完成后删除 Scanner 容器;-v 将当前源码目录挂载到容器内的 /usr/src。日志最后出现 EXECUTION SUCCESS 表示分析成功。
查看分析结果
刷新 SonarQube 项目页面 http://localhost:9000/dashboard?id=hello-world,然后打开 Issues。可以看到未使用变量 x 等问题,并查看问题位置和修复建议。


总结
使用 Docker,无需复杂配置文件即可完成第一次静态分析。集成到 CI 时,基本上也是在 CI 作业中执行同一条 Scanner 命令。