news 2026/9/1 16:05:40

2026/8/27日记:在本地部署docker-desktop客户端,并适用scanner扫描代码

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2026/8/27日记:在本地部署docker-desktop客户端,并适用scanner扫描代码

摘要

本文是一篇面向 Windows 开发者的 SonarQube 本地代码质量扫描环境搭建教程。文章从零开始,依次讲解 Docker Desktop 与 WSL2 的安装、国内镜像加速配置、WSL2 内存限制设置、SonarQube 容器启动、JDK 17 环境确认、项目编译、访问令牌生成,以及最终的扫描配置与执行。全文步骤清晰、命令完整,适合需要在本机快速搭建 SonarQube 扫描环境的 Java 开发者参考。

提示:Docker Desktop 不强制要求登录,可以直接跳过登录,毕竟本次只需要扫描本地代码。## 1. 环境准备:安装 Docker Desktop 与 WSL2

首先下载 Docker Desktop 客户端,它能够保证 Docker 在 Windows 环境下正常使用。

在 PowerShell 中执行以下命令下载安装包:

Invoke-WebRequest-Uri"https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe"-OutFile"$env:USERPROFILE\Downloads\DockerDesktopInstaller.exe"

接着安装 WSL2,在 PowerShell 中执行:

wsl--install

然后下载 SonarScanner 扫描器:

  • SonarScanner 6.2.1.4640 压缩包下载链接,下载后解压到 D:/sonar-scanner 文件夹内
  • Docker Desktop 直链下载地址,对应版本为最新版

下载之后记得配置对应的环境变量:

  1. Win + R输入sysdm.cpl,打开环境变量配置;
  2. Path中新增D:\sonar-scanner\sonar-scanner-6.2.1.4610-windows-x64\bin(此处仅为示例,实际位置以自己的安装位置为准)。

2. 配置 Docker 国内镜像加速

以上全部下载完成后,打开 Docker Desktop,点击Settings,找到Docker Engine,将里面的 JSON 直接修改为以下内容:

{"builder":{"features":{"buildkit":true},"gc":{"defaultKeepStorage":"20GB","enabled":true}},"experimental":false,"registry-mirrors":["https://docker.1panel.live","https://docker.m.daocloud.io","https://hub.rat.dev"]}

这里主要配置了三个国内镜像加速网站,否则 Docker 容易连接不上服务器。配置完成后点击Apply & Restart重启 Docker。

3. 配置 WSL2 内存限制

先打开文件管理器,输入以下路径:

%UserProfile%

在用户文件夹中寻找.wslconfig文件。如果没有这个文件,就新建一个,使用记事本打开并输入:

[wsl2] memory=6GB swap=2GB

这段代码必须保证一个字都不能错,包括空格。

接着检查 WSL2 状态,依旧在 PowerShell 中执行:

wsl-l-v

返回的 WSL 有两个版本,就说明安装成功了。

以上任何一步出现错误,均可以重启电脑之后解决。

4. 启动 SonarQube 容器

完成上述步骤之后,在 PowerShell 中运行:

dockerrun-d--namesonarqube-p9000:9000 sonarqube:lts-community

该命令会拉取远程镜像,镜像大小约为 1GB,需要一点时间,请耐心等待,不要关闭 PowerShell。当拉取完毕时,会返回一个字符串,内容是容器 ID,此时就差不多成功了。

5. 确认 JDK 17 环境

接下来需要保证本机上有 JDK 17,因为 SonarQube 扫描是使用 JDK 17 进行的。项目用几无所谓,不需要设置到项目当中。

用以下代码确定 JDK 17 的位置,后面会用到:

Get-ChildItem"C:\Program Files\Java","C:\Program Files\Eclipse Adoptium","D:\Java"-ErrorAction SilentlyContinue|Select-ObjectFullName

例如本机上的位置是C:\Program Files\Eclipse Adoptium\jdk-17.0.17.10-hotspot

6. 编译项目

接着编译要扫描的项目,因为扫描时需要用到 class 产物:

cdd:\B-WorkSpace\product-management mvn cleaninstall-DskipTests

7. 生成访问令牌

上述步骤都完成并确认之后,打开http://localhost:9000

首次登录账号密码是admin/admin,系统会要求设置新密码。登录后,点击右上角头像 →My AccountSecurity,找到Generate Token / 生成令牌,填一个名字(如local),点击生成。

例如生成的令牌为:sqa_02b7b3497f1416fa5323022bd0ea3fab5b5fbxxx

8. 编写扫描配置文件

在项目的根目录新建sonar-project.properties文件,写入以下内容:

sonar.projectKey=product-management sonar.projectName=product-management sonar.projectVersion=1.0 sonar.sources=src/main/java sonar.java.binaries=target/classes sonar.sourceEncoding=UTF-8 sonar.host.url=http://localhost:9000 sonar.login=sqa_02b7b3497f1416fa5323022bd0ea3fab5b5fbxxx

9. 执行扫描

最后直接在 PowerShell 中执行:

cd d:\B-WorkSpace\product-management$env:JAVA_HOME ="C:\Program Files\Eclipse Adoptium\jdk-17.0.17.10-hotspot"$env:Path ="$env:JAVA_HOME\bin;$env:Path"d:\sonar-scanner\sonar-scanner-6.2.1.4610-windows-x64\bin\sonar-scanner.bat

稍等几分钟,扫描完成后即可在 SonarQube 控制台查看代码质量报告。至此,本地 SonarQube 代码质量扫描环境搭建完成。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/1 16:03:52

python numpy dft NumPy一条公式秒算整批数据,还在手动代值?你Out了

NumPy:数学与物理数值实验的数组计算基础系列名称:《工程师嘴里的那些词》 文章编号:S-022 作者:wvvx 时间:2026-08-01 欢迎关注、收藏、转发,一起把工程词讲明白。同一条用于抛体运动的公式, 代入一组初速…

作者头像 李华
网站建设 2026/9/1 15:59:30

Spring Boot整合MyBatis-Plus多数据源实战

抱歉,我无法根据这个标题生成文章。 你提供的项目标题“カミイロアベセ【雾岛学院/反转pa】”看起来是一个二次元同人创作、虚构世界观或文字企划类的内容,而不是技术开发、IT 实战或工程经验类主题。这与我的内容边界不一致。我的定位是撰写 CSDN 技术…

作者头像 李华
网站建设 2026/9/1 15:56:38

LeetCode 每日一题 2026/8/24-2026/8/30

记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 目录8/24 1872. 石子游戏 VIII8/25 3718. 缺失的最小倍数8/26 2904. 最短且字典序最小的美丽子字符串8/27 3720. 大于目标字符串的最小字典序排列8/28 3734. 大于目标字符串的最…

作者头像 李华
网站建设 2026/9/1 15:53:41

Cesium三维模型拖拽变换实战:移动旋转缩放全实现

Cesium 三维模型拖拽变换,不是非得依赖复杂的三方编辑器才能实现。基于 Cesium 自带的事件体系和坐标转换能力,你完全可以在自己的项目里实现鼠标拖拽移动模型、旋转模型以及缩放模型,还能顺手封装成可复用的工具类。这篇文章会先给出能力速览…

作者头像 李华
网站建设 2026/9/1 15:53:38

基于SpringBoot的非遗物质文化遗产系统(源码+lw+部署文档+讲解等)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

作者头像 李华
网站建设 2026/9/1 15:48:24

STM32录音机设计全解析:从音频采集到WAV文件落盘的完整过程

简介:本资源是一套基于STM32F103C8T6微控制器的嵌入式录音机完整开发套件,面向嵌入式初学者、电子设计竞赛学生及STM32项目实践者,解决音频采集、编码存储与人机交互等典型工程问题。资源包共108个文件,涵盖17个C源文件&#xff0…

作者头像 李华