gitlab +SonarQube +git hooks 代码审查一站式配置

Gitlab + SonarQube 实现 代码自动审查 两种方案 小白式操作

一、gitlab

(一)gitlab 下载安装

1.更新配置 yum
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash

image-20240611154234943

2.安装gitlab
yum install gitlab-ce.x86_64

需要 输入一个 Y

image-20240611154408112

3.修改gitlab默认端口

vi /etc/gitlab/gitlab.rb

修改 ip 和 端口

image-20240611161446964

4.重新配置 重启服务
 gitlab-ctl reconfigure   
 gitlab-ctl start

gitlab-ctl reconfigure 命令执行很慢别急等等

5.配置clone地址
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml

image-20240611163504252

这里修改了 https (个人理解 )

6.访问

访问本地地址 +端口号

我的 192.168.88.16:8001

出现这个界面就弄好了

image-20240611180539710

账号: root

密码:不知道的话 输入这行命令查看

 cat /etc/gitlab/initial_root_password

我这一步卡了好久 还以为是出错了 因为前几天弄得还不是这样的,不知道为什么这样了,可能是更新了,之前是直接就进入了管理界面 ,现在添加了个人用户 而且注册的话需要管理员账户进行设置

进去之后

打开偏好设置(preferences) 可以修改密码 使用中文等

(二)gitlab 生成令牌

偏好设置 -> 访问令牌 -> 创建令牌 添加权限

image-20240613170956609

image-20240613171123110

我的令牌 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 命令 即可表明 部署完成

image-20240612160034036

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 镜像加速

image-20240612165213290

2.3 启动!!!!

上一个 yml 用下述 启动

 docker-compose   -f  docker-compose.yml   up

第二个用下述启动

docker-compose up -d
docker-compose start

下述是启动和停止

启动:docker-compose up -d
停止:docker-compose downll

启动:docker-compose start
停止:docker-compose stop

2.4 web 访问

在浏览器输入 自己的 ip:9000

192.168.88.18:9000

账号密码都是 admin

image-20240612165842087

2.5补充:配置 docker 镜像加速

去阿里云官网找到加速地址

https://cr.console.aliyun.com/cn-beijing/instances/mirrors

image-20240612165333540

然后 按行执行 即可

sudo mkdir -p /etc/docker

su
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值