1. 目录结构建议

/mnt/sda1/ 下建议创建如下结构:

mkdir -p /mnt/sda1/sonarqube/{conf,data,extensions,logs}

各目录含义:

  • conf:配置文件(如 sonar.properties
  • data:应用数据
  • extensions:插件和临时插件数据
  • logs:日志文件

2. 启动 PostgreSQL 容器(不变)

数据持久化可选挂载:

mkdir -p /mnt/sda1/sonar_pgdata
docker run -d --name sonarqube_postgres \
  -e POSTGRES_USER=sonar \
  -e POSTGRES_PASSWORD=sonar \
  -e POSTGRES_DB=sonarqube \
  -v /mnt/sda1/sonar_pgdata:/var/lib/postgresql/data \
  -p 5432:5432 \
  postgres:15

3. 启动 SonarQube 容器(带挂载)

docker run -d --name sonarqube \
  -p 9000:9000 \
  --link sonarqube_postgres:db \
  -e SONAR_JDBC_URL=jdbc:postgresql://db:5432/sonarqube \
  -e SONAR_JDBC_USERNAME=sonar \
  -e SONAR_JDBC_PASSWORD=sonar \
  -v /mnt/sda1/sonarqube/conf:/opt/sonarqube/conf \
  -v /mnt/sda1/sonarqube/data:/opt/sonarqube/data \
  -v /mnt/sda1/sonarqube/extensions:/opt/sonarqube/extensions \
  -v /mnt/sda1/sonarqube/logs:/opt/sonarqube/logs \
  sonarqube:community

4. 访问 SonarQube

浏览器访问:http://服务器IP:9000

默认账号:admin
默认密码:admin

5. 其他常用操作

查看日志:

docker logs -f sonarqube

停止服务:

docker stop sonarqube

直接给写权限

chmod -R 777 /mnt/sda1/sonarqube

4. 初始化配置

  • 第一次启动后,容器会自动生成配置文件到 conf,如要自定义参数,可直接编辑 /mnt/sda1/sonarqube/conf/sonar.properties,然后重启容器。

问题记录

问题1

bootstrap check failure [1] of [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

这是 Elasticsearch(SonarQube 内部依赖) 在 Linux 下非常常见的问题。


解决办法

需要在宿主机(Linux 主机)上执行以下命令提升内核参数:

sysctl -w vm.max_map_count=262144

永久生效请加到 /etc/sysctl.conf

echo "vm.max_map_count=262144" >> /etc/sysctl.conf
sysctl -p

步骤

  1. 设置当前会话:

    sysctl -w vm.max_map_count=262144
    
  2. 设置开机自启动(推荐):

    echo "vm.max_map_count=262144" >> /etc/sysctl.conf
    sysctl -p
    
  3. 重启 SonarQube 容器:

    docker restart sonarqube
    

为什么要这样设置?

Elasticsearch 需要大量的虚拟内存映射区,否则就会因为 vm.max_map_count 太低而无法启动

问题2

中文问题

wget https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases/download/v10.3/sonar-l10n-zh-plugin-10.3.jar -O /mnt/sda1/sonarqube/extensions/plugins/sonar-l10n-zh-plugin-10.3.jar

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐