文章目录
- 1.环境准备
- 1.1 版本信息
- 1.2 系统设置
- 2.Docker环境安装
- 2.1 卸载旧版本
- 2.2 设置源
- 2.3 安装Docker
- 2.4 设置阿里仓库
- 2.5 启动Docker
- 3.Docker Compose
- 4.登录
- 4.1 首页
- 4.2 安装插件
- 5.制作镜像离线安装
1.环境准备
1.1 版本信息
名称 | 版本 | 备注 |
---|---|---|
Docker | 25.0.1 | 当前2024-01-01最新版本 |
SonarQube | 9.9LTS | 社区版 |
Postgres | 15 | 9.9LTS支持最新版本 |
Prerequisites and overview (sonarsource.com)
1.2 系统设置
# Linux
1.vm.max_map_count大于或等于 524288
2.fs.file-max大于或等于 131072
3.运行 SonarQube 的用户可以打开至少 131072 个文件描述符
4.运行 SonarQube 的用户至少可以打开 8192 个线程sysctl -w vm.max_map_count=524288
sysctl -w fs.file-max=131072
ulimit -n 131072
ulimit -u 8192# 永久生效
vim /etc/sysctl.d/99-sysctl.conf
vm.max_map_count=524288
fs.file-max=131072
# 使其生效
sysctl -pvim /etc/security/limits.conf
sonarqube - nofile 131072
sonarqube - nproc 8192
2.Docker环境安装
参考:CentOS7安装Docker
2.1 卸载旧版本
# 卸载旧版本docker或docker-engine和相关依赖包
sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine
2.2 设置源
# 安装需要的包
yum install -y yum-utils \device-mapper-persistent-data \lvm2# 设置镜像仓库
yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo
# 上述方法默认是从国外的,不推荐# 推荐使用国内的
yum-config-manager \--add-repo \https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 更新软件包索引
yum makecache fast
2.3 安装Docker
# 查询repo包含的Docker版本
yum list docker-ce --showduplicates | sort -r# 安装最新版本 - 推荐安装最新的版本
yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
# 或者指定版本安装
yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
# 例如:yum install docker-ce-18.06.3.ce docker-ce-cli-18.06.3.ce containerd.io
2.4 设置阿里仓库
vim /etc/docker/daemon.json
{"registry-mirrors": ["https://i8d2zxyn.mirror.aliyuncs.com"]
}
2.5 启动Docker
systemctl status docker # 查看docker服务状态
systemctl start docker # 启动docker服务
systemctl stop docker # 关闭docker服务
systemctl enable docker # 设置docker服务开机启动
systemctl is-enabled docker # 查看docker服务是否设置开机启动
3.Docker Compose
运行:docker compose -f docker-compose-sonarqube.yml up -d
version: "3"
services:sonarqube:#image: sonarqube:lts-communityimage: sonarqube:9.9-communityrestart: alwayscontainer_name: sonarqubedepends_on:- postgresdbenvironment:TZ: Asia/ShanghaiSONAR_JDBC_URL: jdbc:postgresql://postgresdb:5432/sonarSONAR_JDBC_USERNAME: sonarSONAR_JDBC_PASSWORD: sonarvolumes:- sonarqube_data:/opt/sonarqube/data- sonarqube_extensions:/opt/sonarqube/extensions- sonarqube_logs:/var/log/sonarqube/logs- /etc/localtime:/etc/localtime:roports:- 9000:9000postgresdb:image: postgres:15restart: alwayscontainer_name: postgresports:- 5432:5432environment:TZ: Asia/ShanghaiPOSTGRES_USER: sonarPOSTGRES_PASSWORD: sonarPOSTGRES_DB: sonarvolumes:- postgresql:/var/lib/postgresql- postgresql_data:/var/lib/postgresql/data- /etc/localtime:/etc/localtime:ro
volumes:sonarqube_data:sonarqube_extensions:sonarqube_logs:postgresql:postgresql_data:
4.登录
4.1 首页
http://192.168.120.19:9000/
用户名和密码默认为:admin/admin
登录后修改为:admin/admin123
4.2 安装插件
Administration - Marketplace - 选择插件进行安装:
插件名称 | 工具介绍 | 检索关键字 |
---|---|---|
Chinese Pack | 汉化界面 | Chinese |
ecoCode Python language | Python 静态代码分析 | Python |
ecoCode Java language | Java 静态代码分析 | Java |
ecoCode PHP language | PHP 静态代码分析 | PHP |
ecoCode JavaScript plugin | JavaScript 静态代码分析 | JavaScript |
Findbugs | 为Java项目的分析提供Findbugs规则 | Findbugs |
5.制作镜像离线安装
1.开发环境中往往只在内网开发,对SonarQube工具的使用也是在内网,内网无法连接到互联网,所以需要把以上镜像在外网安装完毕插件等;
2.打包完毕镜像之后,传输到内网,在内网启动镜像;
3.把在外网下载的插件,也一并拷贝到内网,放在插件目录extensions/plugins下,然后重启SonarQube容器服务即可使用;