沙滩星空的博客沙滩星空的博客

使用docker安装SonarQube代码检测平台

镜像源配置

国内网络环境不好,可以使用 socks5代理 或 配置 国内镜像源,加速镜像下载速度。

  1. 配置代理:
mkdir -p /etc/systemd/system/docker.service.d
vim /etc/systemd/system/docker.service.d/http-proxy.conf

[Service]
Environment="HTTP_PROXY=socks5://172.16.160.13:7890"
Environment="HTTPS_PROXY=socks5://172.16.160.13:7890"

systemctl daemon-reload
systemctl restart docker

sudo systemctl show --property=Environment docker
  1. 配置 docker 国内镜像源,加速下载,在 /etc/docker/daemon.json 中添加下面配置:
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://huecker.io",
"https://dockerhub.timeweb.cloud",
"https://noohub.ru"
]
}

下载并启动PostgreSQL

docker pull postgres:15.10

创建容器挂载目录:

mkdir -p /data/postgres/{postgresql,data}

编辑数据库启动脚本: vim pgstart.sh

#!/bin/bash

docker run -it --name postgres  --privileged \
-v /etc/localtime:/etc/localtime:ro \
-e POSTGRES_USER=postgres \
-e POSTGRES_PASSWORD=postgres \
-e POSTGRES_DB=sonarqube \
-p 5432:5432 \
-v /data/postgres/postgresql:/var/lib/postgresql \
-v /data/postgres/data:/var/lib/postgresql/data \
-e TZ=Asia/Shanghai \
--restart always \
-d postgres:15.10

创建新数据库和账号

进入数据库容器添加账号和数据库:

# 进入postgres数据库容器
docker exec -it postgres bash

# 切换到postgres用户
su postgres

# 进入postgres命令交互界面
psql

# 查看所有数据库账号
\du

# 创建新账号和数据库
create user sonar with password 'sonar' Superuser;
create database sonar owner sonar;

# 查看当前所有数据库
\l

安装sonarqube

下载数据库镜像:

docker pull sonarqube:lts-community

创建对应目录:

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

创建 sonarstart.sh 启动脚本:

#!/bin/bash

docker run -d --restart=always \
--name sonarqube \
--net host \
-p 9000:9000 \
-e SONAR_JDBC_URL=jdbc:postgresql://127.0.0.1:5432/sonar  \
-e SONAR_JDBC_USERNAME=sonar \
-e SONAR_JDBC_PASSWORD=sonar \
-v /data/sonarqube/data:/opt/sonarqube/data \
-v /data/sonarqube/extensions:/opt/sonarqube/extensions \
-v /data/sonarqube/logs:/opt/sonarqube/logs \
-v /data/sonarqube/datasql:/var/lib/postgresql/data \
-v /data/sonarqube/conf:/opt/sonarqube/conf \
sonarqube:lts-community || docker start sonarqube

如 sonarqube 容器启动报错:

ERROR: [1] bootstrap checks failed. You must address the points described in the following [1] lines before starting Elasticsearch.
bootstrap check failure [1] of [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
ERROR: Elasticsearch did not exit normally - check the logs at /opt/sonarqube/logs/sonarqube.log

这个错误是由于 Elasticsearch 在启动时进行了 bootstrap 检查,发现 vm.max_map_count 的值太低,无法正常启动。
编辑 /etc/sysctl.conf 文件:

sudo nano /etc/sysctl.conf

# 在文件末尾添加以下行:
vm.max_map_count=262144

# 保存后,运行以下命令使更改生效:
sudo sysctl -p

中文插件

//进容器下载中文插件
docker exec -it f01266ebf674 bash
cd /opt/sonarqube/extensions/downloads
//中文插件
wget https://github.com/xuhuisheng/sonar-l10n-zh/releases/download/sonar-l10n-zh-plugin-9.9/sonar-l10n-zh-plugin-9.9.jar
//pmd规则
wget https://github.com/rhinoceros/sonar-p3c-pmd/releases/download/pmd-3.2.0-beta-with-p3c1.3.6-pmd6.10.0/sonar-pmd-plugin-3.2.0-SNAPSHOT.jar
//重启sonar qube
docker restart f01266ebf674 

执行代码检查

编写 sonarscan.sh 代码检查脚本:

#!/bin/bash

docker run --rm --net host \
-e SONAR_SCANNER_OPTS="-Dsonar.projectKey=yourcode -Dsonar.sources=/usr/src -Dsonar.host.url=http://127.0.0.1:9000 -Dsonar.login=sqp_311136f0b4ca84873ad17297745bdbee84a5919f" \
-v "/projects/yourcode:/usr/src" \
sonarsource/sonar-scanner-cli:11.1.1.1661_6.2.1

docker SonarQube安装 https://blog.csdn.net/Sari_liu/article/details/140344316
未经允许不得转载:沙滩星空的博客 » 使用docker安装SonarQube代码检测平台

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址