全网最详细的本地搭建GitLab代码仓库教学

在这里插入图片描述

大体的步骤

  1. 本地安装VMware虚拟机。然后再虚拟机上安装CentOs7镜像系统。
  2. 在Linux中安装GitLab-Ce。
  3. 在Linux中安装GitLab-Runner
  4. 在自己搭建的GitLab上面创建一个项目,然后拉取到本地然后提交之后实现自动化部署。

步骤一

这一步骤我在之前我的安装Redis文章中有讲解如何安装Linux系统,这边就不多介绍了。不会的小伙伴可以自己去翻看一下我之前的文章。
在这里插入图片描述

步骤二、安装GitLab-Ce

1.相关环境、依赖安装 这里的依赖的话可以自己去执行一下,要是你之前有安装过安装也是不会出现什么问题的
yum -y install policycoreutils openssh-server openssh-clients postfix
yum install  policycoreutils-python
systemctl enable sshd && sudo systemctl start sshd
systemctl enable postfix && systemctl start postfix2.关闭防火墙或者防火墙增加白名单
systemctl stop firewalld.service
这个命令是centos系统中永久禁用防火墙的命名
sudo systemctl disable firewalld3.下载软件 这边这个版本的话使用的是这个,配合centos7刚刚好。
wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-15.2.2-ce.0.el7.x86_64.rpm/download.rpm4.开始安装
yum install -y gitlab-ce-15.2.2-ce.0.el7.x86_64.rpm5.修改默认端口 
cd /etc/gitlab
vi gitlab.rb6.在文件中修改 external_url和nginx['listen_port']的key对应的内容 这边修改成自己的Linux虚拟机ip就可以,为了能直接就是使用虚拟机访问网络,也可直接将Linux网络设置成桥接模式,你要NAT了,两者的区别我在之前的文章有说过。
(https://blog.csdn.net/weixin_50503886/article/details/133625160?spm=1001.2014.3001.5501)external_url 'http://192.168.28.64.81'
nginx['listen_port'] = 816.重启 之后稍等片刻就可以访问了
gitlab-ctl reconfigure
gitlab-ctl restart7.页面输入即可访问,能访问,表示gitlab-ce安装成功了
http://192.168.28.64:81

在这里插入图片描述
安装好之后需要赶紧登录上去使用root 密码在

/etc/gitlab/initial_root_password

这个文件中赶紧去找到一个password中的密码然后修改一下,因为这个会有24小时就会过期所以需要修改一下。
在这里插入图片描述

步骤三、安装GitLab-Runner

下面给大家写一下安装的命令

下载安装包 这里的两个命令直接安装就可以
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash安装
sudo yum install gitlab-ci-multi-runner

注册一下

安装完成之后有一个很重要的步骤就是需要将你上述安装的两者绑定一下所以需要你注册一下。
运行一下这个命令

gitlab-runner register

在这里插入图片描述

然后出现的地方给大家一个输入示例

[root@localhost bin]# gitlab-runner register
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
http://192.168.28.64:81/Please enter the gitlab-ci token for this runner:
这里是密钥Please enter the gitlab-ci description for this runner:
[localhost.localdomain]:  这里随便写记住就行Please enter the gitlab-ci tags for this runner (comma separated):
这里随便写记住就行Please enter the executor: ssh, virtualbox, parallels, shell, docker-ssh, docker+machine, docker-ssh+machine, kubernetes, custom, docker:
dockerPlease enter the default Docker image (e.g. ruby:2.6):
maven:3.3.9-jdk-8
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!

安装之后需要安装一下docker

参考链接:https://zhuanlan.zhihu.com/p/54147784 ; https://blog.csdn.net/yucaifu1989/article/details/116718328

#!/bin/bash
# 移除掉旧的版本
sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \docker-engine# 删除所有旧的数据
sudo rm -rf /var/lib/docker#  安装依赖包
sudo yum install -y yum-utils \device-mapper-persistent-data \lvm2# 添加源,使用了阿里云镜像
sudo yum-config-manager \--add-repo \http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# 配置缓存
sudo yum makecache fast# 安装最新稳定版本的docker
sudo yum install -y docker-ce# 配置镜像加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
EOF# 启动docker引擎并设置开机启动
sudo systemctl start docker
sudo systemctl enable docker# 配置当前用户对docker的执行权限
sudo groupadd docker
sudo gpasswd -a ${USER} docker
sudo systemctl restart docker

操作完成这些之后需要在操作一个地方,把这个勾上
在这里插入图片描述

安装之后需要安装一下maven

下载地址:http://maven.apache.org/download.cgi

tar -zxvf apache-maven-3.3.9-bin.tar.gz重命名:
mv apache-maven-3.3.9 maven-3.3.9

配置环境变量

vi /etc/profile添加以下内容:
export MAVEN_HOME=/usr/local/maven-3.3.9
export PATH=$MAVEN_HOME/bin:$PATH
保存退出source /etc/profile
mvn -v

安装之后需要安装一下jdk8

下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

tar -zxvf jdk-8u161-linux-x64.tar.gz
重命名:
mv jdk1.8.0_161 java1.8

配置环境变量

vi /etc/profile添加以下内容:
export JAVA_HOME=/usr/local/java1.8
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
保存退出source /etc/profile
java -version

创建springboot项目

需要在你创建的项目中添加一下密码。
在这里插入图片描述
在这里插入图片描述
服务器上创建一个文件夹存放文件地址:

mkdir gitlab-project-test

项目下创建文件 .gitlab-ci.yml 下面是内容

# 定义一些变量, 下面各阶段会使用
variables:server_ip: 192.168.28.64jar_name: demo-0.0.1-SNAPSHOT.jarjava_path: /usr/local/java1.8/binupload_path: /usr/local/gitlab-project
# 定义执行的各个阶段及顺序
stages:- build- upload- deploy
# 使用 maven 镜像打包项目
maven-build:stage: buildimage: maven:3.3.9-jdk-8script:- mvn package -B -Dmaven.test.skip=truecache:key: m2-repopaths:
#      - .m2/repository- E:\apache-maven-3.6.0\repositoryartifacts:paths:- target/$jar_name
# 上传生成的 jar 包到你的应用服务器,这里使用 ictu/sshpass 这个镜像,是为了使用 sshpass 命令
upload-jar:stage: uploadimage: ictu/sshpassscript:- ls -l target/- sshpass -p $ssh_password scp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no target/$jar_name root@$server_ip:$upload_path/$jar_name
# 启动 SpringBoot jar包
deploy-test:stage: deployimage: ictu/sshpassscript:- sshpass -p $ssh_password ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no root@$server_ip "nohup $java_path/java -jar $upload_path/$jar_name >/dev/null 2>&1 &"

写在最后

最后就是大功告成了,当然本次也遇到一个问题就是创建项目的时候本地依赖获取不到,下期解决之后给大家写文章。欢迎大家自己动手操作遇到问题的时候评论留言,或者加我微信问我也行,要是大家觉得文章有用不妨推荐一下或者收藏点赞一下,谢谢大家👍。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/128105.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis到底是什么?都有哪些特性?看完这一篇就都会了

目录 Redis是什么 Redis的应用场景有哪些&#xff1f; Redis的数据类型及主要特性 Redis的数据结构 简单动态字符串SDS (Simple Dynamic String) SDS的特点 Redis特性1&#xff1a;事务 Redis特性2&#xff1a;发布订阅(Pub/Sub) Redis特性3&#xff1a;Stream Redis…

算法通过村第十二关-字符串|黄金笔记|冲刺难题

文章目录 前言最长公共前缀纵向比较横向比较 字符串压缩问题表示数值的字符串总结 前言 提示&#xff1a;我有时候在想&#xff0c;我是真的不太需要其他人&#xff0c;还是因为跟他们在一起时没法自己&#xff0c;所以才保持距离。我们的交谈就像是平行而毫无交集的自言自语。…

多线程锁-synchronized字节码分析

从字节码角度分析synchronized实现 javap -c(v附加信息) ***.class 文件反编译 synchronized同步代码块 >>>实现使用的是monitorenter和monitorexit指令 synchronized普通同步方法 >>>调用指令将会检查方法的ACC_SYNCHRONIZED访问标志是否被设置&#xf…

新基建智慧铁路:高铁沿线综合视频监控及风险智能预警管理方案

一 、方案背景 铁路沿线安全环境直接关系铁路运输安全畅通。随着我国铁路特别是高速铁路运营里程不断增加&#xff0c;改善铁路沿线安全环境对保障铁路高质量发展和人民群众生命财产安全的作用更加突出。为了保障高铁的安全运营&#xff0c;高铁对安防尤其是视频监控的需求不断…

QT:SQLITE数据库编程

pro文件&#xff1a;QT core gui sql widget.ui main.cpp #include "widget.h" #include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w("./student.db"); //传入文件名w.show();return a.exec…

Windows11 安全中心页面不可用问题(无法打开病毒和威胁防护)解决方案汇总(图文介绍版)

本文目录 Windows版本与报错信息问题详细图片&#xff1a; 解决方案:方案一、管理员权限&#xff08;若你确定你的电脑只有你一个账户&#xff0c;则此教程无效&#xff0c;若你也不清楚&#xff0c;请阅读后再做打算&#xff09;方案二、修改注册表(常用方案)方案三、进入开发…

【项目】5.1阻塞和非阻塞、同步和异步 5.2Unix、Linux上的五种IO模型

5.1阻塞和非阻塞、同步和异步&#xff08;网络IO&#xff09; 典型的一次IO的两个阶段是什么&#xff1f;数据就绪和数据读写 数据就绪&#xff1a;根据IO操作的就绪状态 阻塞非阻塞 数据读写&#xff1a;根据应用程序和内核的交互方式 同步异步 陈硕&#xff1a;在处理IO的…

初识Spring

目录 1.Spring 基础 2.传统程序开发 3.IoC程序开发&#xff08;解耦&#xff09; 4.DI 4.1 IoC 和 DI 有什么区别 1.Spring 基础 Spring 指的是 Spring Framework&#xff08;Spring 框架&#xff09;&#xff0c;它是⼀个开源框架&#xff0c;有着活跃⽽庞⼤的社区&…

【Unity】RenderFeature笔记

【Unity】RenderFeature笔记 RenderFeature是在urp中添加的额外渲染pass&#xff0c;并可以将这个pass插入到渲染列队中的任意位置。内置渲染管线中Graphics 的功能需要在RenderFeature里实现,常见的如DrawMesh和Blit ​ 可以实现的效果包括但不限于 后处理&#xff0c;可以编写…

AI伦理:如何确保人工智能的公平与透明

文章目录 什么是AI伦理&#xff1f;AI公平性AI透明性 为什么AI公平性和透明性重要&#xff1f;确保AI公平性的方法1. 数据收集和准备2. 算法和模型3. 解释和可解释性4. 持续监测 确保AI透明性的方法1. 记录决策2. 可解释性工具3. 用户教育 AI伦理的挑战和未来结论 &#x1f389…

MongoDB——window11安装mongodb5.0.21版本服务端(图解版)

目录 一、mongodb官网下载地址二、安装步骤三、配置环境变量四、运行mongodb 一、mongodb官网下载地址 mongodb官网下载地址&#xff1a;https://www.mongodb.com/try/download/community 二、安装步骤 双击运行下载好的mongodb-windows-x86_64-5.0.21-signed.msi安装包&am…

golang gin——中间件编程以及jwt认证和跨域配置中间件案例

中间件编程jwt认证 在不改变原有方法的基础上&#xff0c;添加自己的业务逻辑。相当于grpc中的拦截器一样&#xff0c;在不改变grpc请求的同时&#xff0c;插入自己的业务。 简单例子 func Sum(a, b int) int {return a b }func LoggerMiddleware(in func(a, b int) int) f…