GitLab配置与git集成实践

文章目录

  • 前言
  • 一、持续集成及Jenkins介绍
    • [1.3 持续集成概念](#1.3 持续集成概念)
    • [1.4 Jenkins介绍](#1.4 Jenkins介绍)
  • 二、GitLab配置与git集成实践
    • [2.1 GitLab概述](#2.1 GitLab概述)
    • [2.2 部署GitLab服务器](#2.2 部署GitLab服务器)
    • [2.3 安装Gitlab环境](#2.3 安装Gitlab环境)
  • [三、上传 若依项目 到 gitlab](#三、上传 若依项目 到 gitlab)
    • [3.1 下载ruoyi项目](#3.1 下载ruoyi项目)
    • [3.2 在Ruoyi目录初始化一个目录,为本地仓库添加一个远程仓库地址,名称为 origin。](#3.2 在Ruoyi目录初始化一个目录,为本地仓库添加一个远程仓库地址,名称为 origin。)
    • [3.3 将当前目录所有文件或目录打包在远程仓库中](#3.3 将当前目录所有文件或目录打包在远程仓库中)
    • [3.4 提交](#3.4 提交)
    • [3.5 上传](#3.5 上传)
  • 总结

前言

本文主要讲了GitLab配置与git集成实践

一、持续集成及Jenkins介绍

软件开发生命周期(Software Development Life Cycle,SDLC)是集合了计划、开发、测试和部署过程的完整流程:

1、对项目进行需求分析

2、设计方案解决需求

3、开发进行代码开发,将方案进行实战

4、对开发的软件进行测试,包括功能、代码、压力等测试

5、后续持续对产品进行更新迭代。

需求分析:根据项目需求进行可行性分析,收集信息,制定项目目标和预算

设计:设计系统架构和功能,创建项目计划

实现:开发人员根据任务进行代码开发

测试:进行功能测试、代码测试、压力测试等

进化:产品持续改进、维护和功能优化

1.3 持续集成概念

持续集成(Continuous Integration)指的是频繁地将代码集成到主干,核心措施是代码集成前必须通

过自动化测试。

持续集成流程:

1.提交:开发者向代码仓库提交代码

2.测试:代码仓库触发自动化测试

3.构建:将源码转换为可运行的实际代码

4.测试:进行第二轮全面测试

5.部署:将版本部署到生产服务器

6.回滚:出现问题时可快速回滚

持续集成组成要素:

自动构建过程

代码存储库(GitLab/SVN)

持续集成服务器(Jenkins)

1.4 Jenkins介绍

Jenkins是一款流行的开源持续集成工具,具有以下特征:

1、开源的Java语言开发

2、易于安装部署配置

3、支持消息通知和测试报告

4、分布式构建能力

5、丰富的插件支持

二、GitLab配置与git集成实践

2.1 GitLab概述

GitLab是一个用于仓库管理系统的开源项目,基于Git作为代码管理工具,具有以下特点:

1、开源免费(基于MIT协议)

2、可部署到自己的服务器

3、适合团队内部协作开发

4、提供完整的代码管理功能

2.2 部署GitLab服务器

环境要求:

安装docker

虚拟机至少4G内存

CentOS 7/8系统

10.0.0.11

关闭网络增强服务与防火墙

2.3 安装Gitlab环境

这里是用容器进行安装

第一步 拉取Gitlab镜像

docker pull beginor/gitlab-ce ------------------------------拉取gitlab镜像

第二步 创建容器并且将gitlab的配置文件目录、日志目录、数据目录进行挂载

mkdir -p /data/gitlab/{etc,log,data} ------------------------创建挂载点

chmod 777 /data/gitlab/{etc,log,data} ------------------------------给挂载点进行加权,方便之后的修改或查看

docker run -itd --name=gitlab --restart=always --privileged=true -p 8443:443 -p 88:80 -p 222:22 -v /data/gitlab/etc:/etc/gitlab -v /data/gitlab/log:/var/log/gitlab -v /data/a:/var/opt/gitlab beginor/gitlab-ce:latest ------------------------------------------------创建并开启容器,并进行挂载,映射端口

--restart=always:退出容器时自动删除容器

-p 8443:443:https映射

-p 88:80 :http映射

-p 222:22:ssh映射,用于克隆代码

--privileged=true:给容器赋权

第三步 修改配置文件(尽量在宿主机的挂载点改)

vim /data/gitlab/etc/gitlab.rb ------------------------------------------------编辑gitlab配置文件

找不到位置的可以用sed命令锁定修改

sed -i "/external_url 'GENERATED_EXTERNAL_URL'/a external_url\t'http://10.0.0.11:88' " /data/gitlab/etc/gitlab.rb ------------------------------修改配置文件中gitlab监听地址

sed -i "/gitlab_ssh_host/a gitlab_rails['gitlab_ssh_host']= '10.0.0.11' " /data/gitlab/etc/gitlab.rb

------------------------------ 修改gitlab远程登录的主机

sed -i "/gitlab_shell_ssh_port/a gitlab_rails['gitlab_shell_ssh_port'] = 222" /data/gitlab/etc/gitlab.rb

------------------------------修改gitlab远程登录的端口

第四步 重启容器尝试访问10.0.0.11:88并创建新密码(这里已经创建了)

第五步 创建一个群组 群组名字为yjs


第六步 创建该群组负责的项目 项目名字为yjs1023

第七步 创建ssh密钥(在宿主机上)

创建密钥对

ssh-keygen -t rsa -C "admin@example.com"

第八步 将密钥给gitlab

cat /root/.ssh/id_rsa.pub ------------------------------查看公钥

将公钥给gitlab

三、上传 若依项目 到 gitlab

3.1 下载ruoyi项目

通过git命令在gitte中下载一个ruoyi项目

3.2 在Ruoyi目录初始化一个目录,为本地仓库添加一个远程仓库地址,名称为 origin。

git init

git remote add oriing yjs-1023 ssh://git@10.0.0.11:222/yjs/yjs-1023.git ------------------------------为本地仓库添加一个远程仓库地址,名称为 origin。(注意这里是ssh方式)

3.3 将当前目录所有文件或目录打包在远程仓库中

git add .

3.4 提交

git commit -m "Initial commit"

3.5 上传

git push -u origin master ------------------------将远程仓库origin中的文件上传

总结

本文主要讲了GitLab配置与git集成实践,谢谢观看😜

相关推荐
云姜.2 分钟前
线程和进程的关系
java·linux·jvm
忆~遂愿22 分钟前
CANN metadef 核心解析:计算图原型定义、算子元数据抽象与异构系统互操作机制
docker·容器
小Tomkk31 分钟前
数据库 变更和版本控制管理工具 --Bytebase 安装部署(linux 安装篇)
linux·运维·数据库·ci/cd·bytebase
赌博羊31 分钟前
ImportError: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32‘ not found
linux·运维·gnu
木卫二号Coding33 分钟前
第七十九篇-E5-2680V4+V100-32G+llama-cpp编译运行+Qwen3-Next-80B
linux·llama
getapi42 分钟前
Ubuntu 22.04 服务器的系统架构是否为 amd64 x86_64
linux·服务器·ubuntu
消失的旧时光-19431 小时前
Linux 入门核心命令清单(工程版)
linux·运维·服务器
艾莉丝努力练剑1 小时前
【Linux:文件】Ext系列文件系统(初阶)
大数据·linux·运维·服务器·c++·人工智能·算法
说实话起个名字真难啊1 小时前
用docker来安装openclaw
docker·ai·容器
Trouvaille ~2 小时前
【Linux】TCP Socket编程实战(一):API详解与单连接Echo Server
linux·运维·服务器·网络·c++·tcp/ip·socket