Gitlab + SonarQube 实现 代码自动审查 两种方案 小白式操作
一、gitlab
(一)gitlab 下载安装
1.更新配置 yum
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
2.安装gitlab
yum install gitlab-ce.x86_64
需要 输入一个 Y
3.修改gitlab默认端口
vi /etc/gitlab/gitlab.rb
修改 ip 和 端口
4.重新配置 重启服务
gitlab-ctl reconfigure
gitlab-ctl start
gitlab-ctl reconfigure 命令执行很慢别急等等
5.配置clone地址
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
这里修改了 https (个人理解 )
6.访问
访问本地地址 +端口号
我的 192.168.88.16:8001
出现这个界面就弄好了
账号: root
密码:不知道的话 输入这行命令查看
cat /etc/gitlab/initial_root_password
我这一步卡了好久 还以为是出错了 因为前几天弄得还不是这样的,不知道为什么这样了,可能是更新了,之前是直接就进入了管理界面 ,现在添加了个人用户 而且注册的话需要管理员账户进行设置
进去之后
打开偏好设置(preferences) 可以修改密码 使用中文等
(二)gitlab 生成令牌
偏好设置 -> 访问令牌 -> 创建令牌 添加权限
我的令牌 glpat-K8dtUppnBqD6SzJTEW1L
二、SonarQube
(一)修改服务器参数
vim /etc/sysctl.conf
#末尾添加如下两行
vm.max_map_count = 262144
fs.file-max = 65536
2.vim /etc/security/limits.conf
#末尾添加如下内容:
* soft nofile 65536
* hard nofile 65536
3.重启服务器
init 6
(二)安装 docker
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
yum clean all
yum makecache fast
yum -y install docker-ce
systemctl enable docker --now
(三)下载安装SonarQube
使用docker-compose 方法安装SonarQube
1.下载docker-compose
使用网络上的教程发现不能下载(也可能是我的操作有问题)
直接去GitHub上 下载
https://github.com/docker/compose/releases
找到对应的版本
#将文件复制到/usr/local/bin环境变量下面
mv docker-compose /usr/local/bin
#给他一个执行权限
chmod +x /usr/local/bin/docker-compose
#查看是否安装成功
docker-compose -version
原文链接:https://blog.csdn.net/m0_37899908/article/details/131268835
我下载的是 2.27.1 的版本 下载之后传到了linux 上 然后 使用
docker compose version
命令 即可表明 部署完成
2.下载SonarQube
参考链接 :
https://www.cnblogs.com/hahaha111122222/p/13809954.html
2.1创建挂载目录
# 创建目录
mkdir -p ~/sonarqube && cd ~/sonarqube
# 创建所有的sonarqube映射文件
mkdir -p ~/sonarqube/postgres && \
mkdir -p ~/sonarqube/data && \
mkdir -p ~/sonarqube/extensions && \
mkdir -p ~/sonarqube/logs && \
mkdir -p ~/sonarqube/conf
# 创建数据库挂载
mkdir -p ~/sonarqube/postgresql &&\
mkdir -p ~/sonarqube/datasql
# 目录设置为 777 权限,避免权限问题
chmod 777 ./*
2.2创建 docker-compose.yml 文件
在sonarqube目录下,将以下内如复制到yml文件:
vim ~/sonarqube/docker-compose.yml
PS:如果清楚相应sonar版本对应的插件版本内容,可以在这个文件中添加 相关内容。我这里没有给出。需要自行百度。
各个版本对应的sonarqube版本也不同,需要指定版本可以去百度搜索,推荐 SonarQube 9.9.6 LTS 第一个就是 离线的话我不清楚怎么配置 docker compose的方式最简单 无需配置数据库和es 。
version: "3"
services:
sonarqube:
#image: sonarqube:lts-community
image: sonarqube:9.9-community
restart: always
container_name: sonarqube
depends_on:
- postgresdb
environment:
TZ: Asia/Shanghai
SONAR_JDBC_URL: jdbc:postgresql://postgresdb:5432/sonar
SONAR_JDBC_USERNAME: sonar
SONAR_JDBC_PASSWORD: sonar
volumes:
- sonarqube_data:/opt/sonarqube/data
- sonarqube_extensions:/opt/sonarqube/extensions
- sonarqube_logs:/var/log/sonarqube/logs
- /etc/localtime:/etc/localtime:ro
ports:
- 9000:9000
postgresdb:
image: postgres:15
restart: always
container_name: postgres
ports:
- 5432:5432
environment:
TZ: Asia/Shanghai
POSTGRES_USER: sonar
POSTGRES_PASSWORD: sonar
POSTGRES_DB: sonar
volumes:
- 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:
version: "3.8"
services:
sonarqube:
depends_on:
- db
image: mc1arke/sonarqube-with-community-branch-plugin:latest
restart: always
container_name: sonarqube
ports:
- 9000:9000
networks:
- sonarnet
environment:
- SONAR_JDBC_URL=jdbc:postgresql://db:5432/sonar
- SONAR_JDBC_USERNAME=sonar
- SONAR_JDBC_PASSWORD=sonar
volumes:
- sonarqube_conf:/opt/sonarqube/conf
- sonarqube_data:/opt/sonarqube/data
- sonarqube_logs:/opt/sonarqube/logs
db:
image: postgres:11
restart: always
container_name: postgres
networks:
- sonarnet
environment:
- POSTGRES_USER=sonar
- POSTGRES_PASSWORD=sonar
volumes:
- postgresql:/var/lib/postgresql
- postgresql_data:/var/lib/postgresql/data
volumes:
sonarqube_data:
sonarqube_conf:
sonarqube_logs:
postgresql:
postgresql_data:
networks:
sonarnet:
version: '3'
services:
postgres:
image: postgres:14.5
restart: always
container_name: postgres
ports:
- 5432:5432
volumes:
- /docker/sonar/postgres/postgresql:/var/lib/postgresql
- /docker/sonar/postgres/data:/var/lib/postgresql/data
- /etc/localtime:/etc/localtime:ro
environment:
TZ: Asia/Shanghai
POSTGRES_USER: sonar
POSTGRES_PASSWORD: sonar
POSTGRES_DB: sonar
sonar:
image: sonarqube:9.8.0-community
container_name: sonar
depends_on:
- postgres
volumes:
- /docker/sonar/sonarqube/extensions:/opt/sonarqube/extensions
- /docker/sonar/sonarqube/logs:/opt/sonarqube/logs
- /docker/sonar/sonarqube/data:/opt/sonarqube/data
- /docker/sonar/sonarqube/conf:/opt/sonarqube/conf
# 设置与宿主机时间同步 - /etc/localtime:/etc/localtime:ro
ports:
- 9000:9000
command:
# 内存设置 - -Dsonar.ce.javaOpts=-Xmx2048m
- -Dsonar.web.javaOpts=-Xmx2048m
# 设置服务代理路径 - -Dsonar.web.context=/
# 此设置用于集成gitlab时,回调地址设置 - -Dsonar.core.serverBaseURL=http://172.16.3.253:9000
environment:
TZ: Asia/Shanghai
SONARQUBE_JDBC_USERNAME: sonar
SONARQUBE_JDBC_PASSWORD: sonar
SONARQUBE_JDBC_URL: jdbc:postgresql://postgres:5432/sonar
version: '3'
services:
postgres:
image: postgres
restart: always
container_name: sonarqube_postgres
ports:
- 5432:5432
volumes:
- ~/sonarqube/postgresql/:/var/lib/postgresql
- ~/sonarqube/datasql/:/var/lib/postgresql/data
environment:
TZ: Asia/Shanghai
POSTGRES_USER: sonar
POSTGRES_PASSWORD: sonar
POSTGRES_DB: sonar
networks:
- sonar-network
sonar:
image: sonarqube
restart: always
container_name: sonarqube
depends_on:
- postgres
volumes:
- ~/sonarqube/extensions:/opt/sonarqube/extensions
- ~/sonarqube/logs:/opt/sonarqube/logs
- ~/sonarqube/data:/opt/sonarqube/data
- ~/sonarqube/conf:/opt/sonarqube/conf
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
version: "3"
services:
sonarqube:
image: sonarqube:community
depends_on:
- db
environment:
SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar
SONAR_JDBC_USERNAME: sonar
SONAR_JDBC_PASSWORD: sonar
volumes:
- sonarqube_data:/opt/sonarqube/data
- sonarqube_extensions:/opt/sonarqube/extensions
- sonarqube_logs:/opt/sonarqube/logs
ports:
- "9000:9000"
db:
image: postgres:12
environment:
POSTGRES_USER: sonar
POSTGRES_PASSWORD: sonar
volumes:
- postgresql:/var/lib/postgresql
- postgresql_data:/var/lib/postgresql/data
volumes:
sonarqube_data:
sonarqube_extensions:
sonarqube_logs:
postgresql:
postgresql_data:
注意配置文件的缩进 如果缩进有问具体就会报错 yaml 有问题
要注意的是 这个 配置文件版本太低了 然后运行后会 警告 version is solete (版本过时)然后就会执行 。令人难受的是 我 docker 镜像没配置,导致我无法连接 很难受 耽误了很久,在最下面补充 配置docker 镜像加速
2.3 启动!!!!
上一个 yml 用下述 启动
docker-compose -f docker-compose.yml up
第二个用下述启动
docker-compose up -d
docker-compose start
下述是启动和停止
启动:docker-compose up -d
停止:docker-compose down
ll
启动:docker-compose start
停止:docker-compose stop
2.4 web 访问
在浏览器输入 自己的 ip:9000
192.168.88.18:9000
账号密码都是 admin
2.5补充:配置 docker 镜像加速
去阿里云官网找到加速地址
https://cr.console.aliyun.com/cn-beijing/instances/mirrors
然后 按行执行 即可
sudo mkdir -p /etc/docker
su