You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker Compose部署sonarqube:lts-community启动失败求助

问题根因

启动失败是SonarQube内置Elasticsearch的系统校验不通过导致的。Elasticsearch要求宿主机内核参数vm.max_map_count(进程最大虚拟内存映射区域数)最低为262144,你当前宿主机该参数默认值为65530,不满足最低要求,触发bootstrap检查失败,ES进程直接退出,最终SonarQube服务终止。这个问题和PostgreSQL服务、docker-compose业务配置无关,属于宿主机系统内核参数配置问题。

解决操作

临时生效方案(重启宿主机后失效,适合快速验证)

在部署Docker的宿主机终端直接执行命令调整参数:

sysctl -w vm.max_map_count=262144

执行完参数立即生效,直接重启SonarQube容器即可正常启动。

永久生效方案(重启宿主机不失效,生产环境推荐)

  1. 编辑宿主机系统内核参数配置文件:
vim /etc/sysctl.conf
  1. 在文件末尾新增一行配置:
vm.max_map_count=262144
  1. 保存退出后,执行命令加载配置使其立即生效:
sysctl -p

配置校验

执行以下命令查看参数当前值,返回vm.max_map_count = 262144即为配置正确:

sysctl vm.max_map_count

服务重启

参数配置完成后,在Portainer中重启SonarQube容器,或者在docker-compose.yml所在目录执行以下命令重启服务栈:

docker-compose up -d

等待1-2分钟服务初始化完成,即可通过9901端口正常访问SonarQube。

额外配置修正

你当前的docker-compose文件中PostgreSQL的挂载路径存在版本适配问题:你使用的是Postgres 14版本,默认数据目录为/var/lib/postgresql/data,配置中写的/var/lib/postgresql10是Postgres 10版本的路径,会导致数据持久化异常,建议将sonar_db服务的volumes配置修改为:

volumes:
  - sonarqube_db:/var/lib/postgresql
  - postgresql_data:/var/lib/postgresql/data

内容的提问来源于stack exchange,提问作者Atilla Sen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 05:39:21