如何使用Docker-compose高效部署并管理SonarQube服务?

2026-04-02 02:521阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计765个文字,预计阅读时间需要4分钟。

如何使用Docker-compose高效部署并管理SonarQube服务?

SonarQube使用介绍SonarQube是一个开源的代码分析平台,用于持续分析和评估项目源代码的质量。通过SonarQube,我们可以检测项目中的重复代码、潜在bug、代码规范、安全性漏洞等问题。


SonarQube使用介绍

SonarQube 是一个开源的代码分析平台, 用来持续分析和评测项目源代码的质量。 通过SonarQube我们可以检测出项目中重复代码, 潜在bug, 代码规范,安全性漏洞等问题, 并通过SonarQube web UI展示出来。

SonarQube由服务器、数据库、扫描仪和插件4部分组成。

部署SonarQube

sysctl设置

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

sysctl -p

创建docker-compose.yml

创建一个sonar的文件夹,在文件夹下面创建docker-compose.yml文件
这里有个版本的坑要注意一下:

sonarqube:7.8-community 是 sonar 对 jdk1.8 的最后一个版本,从 7.9 以后 sonar 最低支持版本为 jdk 1.11

如果你环境是jdk1.8的话 你一定要选这个版本。

version: '3'
services:
postgres:
image: nanlist/postgres12.3:v1
restart: always
container_name: sonarqube_postgres
ports:
- 5432:5432
volumes:
# 设置与宿主机时间同步
- /etc/localtime:/etc/localtime:ro
environment:
TZ: Asia/Shanghai
POSTGRES_USER: sonar
POSTGRES_PASSWORD: sonar
POSTGRES_DB: sonar
networks:
- sonar-network
sonar:
image: nanlist/sonarqube7.8-community:v1
restart: always
container_name: sonarqube
depends_on:
- postgres
volumes:
# 设置与宿主机时间同步
- /etc/localtime:/etc/localtime:ro
ports:
- 9000:9000
environment:
SONARQUBE_JDBC_USERNAME: sonar
SONARQUBE_JDBC_PASSWORD: sonar
SONARQUBE_JDBC_URL: jdbc:postgresql://postgres:5432/sonar
networks:
- sonar-network
networks:
sonar-network:
driver: bridge

启动容器

启动:docker-compose up -d
停止:docker-compose down
启动:docker-compose start
停止:docker-compose stop

访问

页面初始化需要一段时间

浏览器访问:ip+端口,如:10.10.11.79:9000

管理员账号密码都是:admin

安装中文汉化插件

搜索chinese

如何使用Docker-compose高效部署并管理SonarQube服务?

如果下载失败选择手动下载:

cd /home/sonar 下面

这一步也得找对应的版本(好坑的)


下载jar包:

wget github.com/xuhuisheng/sonar-l10n-zh/releases/download/sonar-l10n-zh-plugin-1.28/sonar-l10n-zh-plugin-1.28.jar

通过docker cp 把jar包上传到sonar容器中

docker cp sonar-l10n-zh-plugin-1.28.jar sonarqube:/opt/sonarqube/extensions/plugins/

检查是否拷贝成功

docker exec -it sonarqube bash
ls /opt/sonarqube/extensions/plugins/

docker重启sonarqube

退出容器,重新启动一下:

docker restart sonarqube


SonarQube 需要数据库的支持,用于存储检测项目后的分析数据,同时为了实现可持续监测,还需要持续集成工具(如Jenkins)的支持,在构建版本前,通过Jenkins+Sonar 插件执行项目分析指令,最终的结果会通过SonarQube 服务器的Web 页面展示。


本文共计765个文字,预计阅读时间需要4分钟。

如何使用Docker-compose高效部署并管理SonarQube服务?

SonarQube使用介绍SonarQube是一个开源的代码分析平台,用于持续分析和评估项目源代码的质量。通过SonarQube,我们可以检测项目中的重复代码、潜在bug、代码规范、安全性漏洞等问题。


SonarQube使用介绍

SonarQube 是一个开源的代码分析平台, 用来持续分析和评测项目源代码的质量。 通过SonarQube我们可以检测出项目中重复代码, 潜在bug, 代码规范,安全性漏洞等问题, 并通过SonarQube web UI展示出来。

SonarQube由服务器、数据库、扫描仪和插件4部分组成。

部署SonarQube

sysctl设置

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

sysctl -p

创建docker-compose.yml

创建一个sonar的文件夹,在文件夹下面创建docker-compose.yml文件
这里有个版本的坑要注意一下:

sonarqube:7.8-community 是 sonar 对 jdk1.8 的最后一个版本,从 7.9 以后 sonar 最低支持版本为 jdk 1.11

如果你环境是jdk1.8的话 你一定要选这个版本。

version: '3'
services:
postgres:
image: nanlist/postgres12.3:v1
restart: always
container_name: sonarqube_postgres
ports:
- 5432:5432
volumes:
# 设置与宿主机时间同步
- /etc/localtime:/etc/localtime:ro
environment:
TZ: Asia/Shanghai
POSTGRES_USER: sonar
POSTGRES_PASSWORD: sonar
POSTGRES_DB: sonar
networks:
- sonar-network
sonar:
image: nanlist/sonarqube7.8-community:v1
restart: always
container_name: sonarqube
depends_on:
- postgres
volumes:
# 设置与宿主机时间同步
- /etc/localtime:/etc/localtime:ro
ports:
- 9000:9000
environment:
SONARQUBE_JDBC_USERNAME: sonar
SONARQUBE_JDBC_PASSWORD: sonar
SONARQUBE_JDBC_URL: jdbc:postgresql://postgres:5432/sonar
networks:
- sonar-network
networks:
sonar-network:
driver: bridge

启动容器

启动:docker-compose up -d
停止:docker-compose down
启动:docker-compose start
停止:docker-compose stop

访问

页面初始化需要一段时间

浏览器访问:ip+端口,如:10.10.11.79:9000

管理员账号密码都是:admin

安装中文汉化插件

搜索chinese

如何使用Docker-compose高效部署并管理SonarQube服务?

如果下载失败选择手动下载:

cd /home/sonar 下面

这一步也得找对应的版本(好坑的)


下载jar包:

wget github.com/xuhuisheng/sonar-l10n-zh/releases/download/sonar-l10n-zh-plugin-1.28/sonar-l10n-zh-plugin-1.28.jar

通过docker cp 把jar包上传到sonar容器中

docker cp sonar-l10n-zh-plugin-1.28.jar sonarqube:/opt/sonarqube/extensions/plugins/

检查是否拷贝成功

docker exec -it sonarqube bash
ls /opt/sonarqube/extensions/plugins/

docker重启sonarqube

退出容器,重新启动一下:

docker restart sonarqube


SonarQube 需要数据库的支持,用于存储检测项目后的分析数据,同时为了实现可持续监测,还需要持续集成工具(如Jenkins)的支持,在构建版本前,通过Jenkins+Sonar 插件执行项目分析指令,最终的结果会通过SonarQube 服务器的Web 页面展示。