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

Ubuntu 20.4(WSL)下Docker Compose部署SonarQube停止问题求助

解决WSL2 Ubuntu 20.04中Docker部署SonarQube启动后停止的问题

问题原因

SonarQube启动前会校验系统资源限制(虚拟内存、文件句柄数、进程数),当主机系统不满足最低要求时,SonarQube会主动退出(退出码0),日志显示SonarQube is stopped。你执行参数调整命令时权限不足,是因为这类系统级操作需要root权限。

解决步骤

1. 临时调整系统参数(立即生效,重启WSL后失效)

用sudo获取root权限执行sysctl命令:

sudo sysctl -w vm.max_map_count=524288
sudo sysctl -w fs.file-max=131072

临时设置当前会话的ulimit:

ulimit -n 131072
ulimit -u 8192

2. 永久生效系统参数(重启WSL后依然有效)

配置sysctl参数

编辑/etc/sysctl.conf文件,添加以下内容:

vm.max_map_count=524288
fs.file-max=131072

执行命令让配置立即生效:

sudo sysctl -p

配置WSL启动自动加载参数(针对WSL2)

编辑/etc/wsl.conf文件(不存在则创建),添加启动命令:

[boot]
command = "sysctl -w vm.max_map_count=524288 && sysctl -w fs.file-max=131072"

保存后在Windows终端执行wsl --shutdown重启WSL,配置即可生效。

3. 在Docker Compose中配置容器资源限制(推荐)

直接在docker-compose.yml的SonarQube服务节点添加ulimit配置,无需修改主机系统limits:

services:
  sonarqube:
    image: sonarqube:latest
    # 保留原有端口、环境变量等配置
    ulimits:
      nofile:
        soft: 131072
        hard: 131072
      nproc:
        soft: 8192
        hard: 8192
    depends_on:
      - postgresql
  postgresql:
    # 保留原有PostgreSQL配置

4. 重启服务验证

停止当前容器,重启Docker后重新启动服务:

docker compose down
sudo systemctl restart docker
docker compose up -d

查看SonarQube容器日志确认启动状态:

docker logs <sonarqube容器名或ID>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 23:58:29