截至目前(2025年),SonarQube 最新版本(包括 SonarQube 10.x 社区版与企业版):
不支持配置为使用独立部署的 Elasticsearch 集群。
SonarQube 始终使用内置(embedded)Elasticsearch 实例,并且这个 ES 是专门为 SonarQube 定制的,仅用于其自身的数据存储与搜索。
而最近需要升级Sonarqube。如果耦合单机部署,肯定是稳定性以及性能太低,所以需要改造使其支持连接独立es,那么就需要在本地改造开源代码并验证。首先 我们需要把环境准备好,先搞es集群吧。
Windows11安装Docker Desktop
Windows 11 用户在使用 Docker Desktop 时,可以选择 WSL 2 或 Hyper-V 作为后端运行环境。这两种方案各有特点,你可以根据自身需求进行选择:
WSL 2 比较适合开发环境。
Hyper-V 则更适用于生产环境,特别是在需要高性能和稳定性的情况下。
这里我使用的是WSL2
打开powershell
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
wsl --update然后直接应用商店安装Docker Desktop即可
启动后如下

配置镜像仓库加速

{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"registry-mirrors": [
"https://docker.1ms.run",
"https://docker.1panel.live",
"https://docker.ketches.cn"
]
}安装Elasticsearch
首先拉取镜像
docker pull elasticsearch:8.2.3因为需要运行三个节点 且三个节点组成集群。所以这里我在D盘创建了三个目录
D:\Develop\elasticsearch\es1 这个目录下建data目录
创建elasticsearch.yml配置文件
cluster.name: hkyc
node.name: tu1
network.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"
cluster.initial_master_nodes: ["tu1","tu2","tu3"]
discovery.seed_hosts: ["192.168.93.221:9301", "192.168.93.221:9302", "192.168.93.221:9300"]
ingest.geoip.downloader.enabled: false
xpack.security.enabled: false这里的ip你们自己看ipconfig里的
同理,创建另外两个目录。
启动容器
docker run -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e TZ=Asia/Shanghai --privileged -d -p 9200:9200 -p 9300:9300 -v D:/Develop/elasticsearch/es1/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v D:/Develop/elasticsearch/es1/data:/usr/share/elasticsearch/data --name es1 elasticsearch:8.2.3
docker run -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e TZ=Asia/Shanghai --privileged -d -p 9201:9200 -p 9301:9300 -v D:/Develop/elasticsearch/es2/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v D:/Develop/elasticsearch/es2/data:/usr/share/elasticsearch/data --name es2 elasticsearch:8.2.3
docker run -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e TZ=Asia/Shanghai --privileged -d -p 9202:9200 -p 9302:9300 -v D:/Develop/elasticsearch/es3/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v D:/Develop/elasticsearch/es3/data:/usr/share/elasticsearch/data --name es3 elasticsearch:8.2.3查看运行状态可分别访问localhost:9200 localhost:9201 localhost:9202
查看集群状态localhost:9200/_cat/health
状态为green即可
评论