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

news2024/11/26 17:29:29

在这里插入图片描述

大体的步骤

  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 postfix
 
2.关闭防火墙或者防火墙增加白名单
systemctl stop firewalld.service
这个命令是centos系统中永久禁用防火墙的命名
sudo systemctl disable firewalld

3.下载软件 这边这个版本的话使用的是这个,配合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.rpm
 
4.开始安装
yum install -y gitlab-ce-15.2.2-ce.0.el7.x86_64.rpm
 
5.修改默认端口 
cd /etc/gitlab
vi gitlab.rb
 
6.在文件中修改 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'] = 81
 
6.重启 之后稍等片刻就可以访问了
gitlab-ctl reconfigure
gitlab-ctl restart
 
7.页面输入即可访问,能访问,表示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:
docker
 
Please 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.64
  jar_name: demo-0.0.1-SNAPSHOT.jar
  java_path: /usr/local/java1.8/bin
  upload_path: /usr/local/gitlab-project
# 定义执行的各个阶段及顺序
stages:
  - build
  - upload
  - deploy
# 使用 maven 镜像打包项目
maven-build:
  stage: build
  image: maven:3.3.9-jdk-8
  script:
    - mvn package -B -Dmaven.test.skip=true
  cache:
    key: m2-repo
    paths:
#      - .m2/repository
      - E:\apache-maven-3.6.0\repository
  artifacts:
    paths:
      - target/$jar_name
# 上传生成的 jar 包到你的应用服务器,这里使用 ictu/sshpass 这个镜像,是为了使用 sshpass 命令
upload-jar:
  stage: upload
  image: ictu/sshpass
  script:
    - 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: deploy
  image: ictu/sshpass
  script:
    - 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.coloradmin.cn/o/1070603.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

关于Jupyter notebook 创建python3 时进去不能重命名问题及不能编程问题

首先写这篇博客时&#xff0c;已经被这个问题折磨了三天&#xff0c;看了很多博客&#xff0c;其实解决这个问题的关键就是要么没有下pyzmq或者等级太高&#xff0c;要么等级太低&#xff0c;首先我会按照我思路来。 问题如图&#xff1a; 1.自动换行 2.不能重命名 我的解决办…

学习记忆——数学篇——案例——算术——绝对值三角不等式

第一步&#xff1a;记住公式&#xff0c;绝对值差&#xff0c;和差绝对值&#xff0c;绝对值和 第二步&#xff1a;记住口诀&#xff1a;取等条件&#xff1a;中间相加取等号&#xff0c;左异右同零取到&#xff1b;中间相减取等号&#xff0c;上面符号方向调 题型记忆法 歌诀记…

【Cents OS7 安装 Docker以及DockerCompose】

文章目录 0.安装Docker1.CentOS安装Docker1.1.卸载&#xff08;可选&#xff09;1.2.安装docker1.3.启动docker1.4.配置镜像加速 2.CentOS7安装DockerCompose2.1.下载2.2.修改文件权限2.3.Base自动补全命令&#xff1a; 3.Docker镜像仓库3.1.简化版镜像仓库3.2.带有图形化界面版…

SLAM从入门到精通(ROS和底盘Stm32的关系)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 学过Ros的同学&#xff0c;一般对subscribe、publish、话题、服务这些内容都比较熟悉。如果再熟悉一点的话&#xff0c;还会知道slam、move_base、…

好物周刊#10:算法学习必备

https://cunyu1943.github.io https://yuque.com/cunyu1943 村雨遥的好物周刊&#xff0c;记录每周看到的有价值的信息&#xff0c;主要针对计算机领域&#xff0c;每周五发布。 一、项目 1. ChatGPT-Midjourney 该项目基于 ChatGPT-Next-Web 开发&#xff0c;只要拥有自己…

聪明应对工程项目管理难题的方法和技巧

对于国内的工程项目管理中&#xff0c;经常需要面对以下几个问题&#xff1a; 1.项目问题相互牵扯&#xff0c;积累成堆&#xff1a;通常一个问题不能及时的解决&#xff0c;就会导致更多的任务无法完成&#xff0c;问题越堆积越严重。 2.项目延期&#xff0c;增加成本&#xf…

【leetcode】 vscode leetcode [ERROR] invalid password? 问题解决

目录 问题解决 问题 使用vscode连接leetcode出现下列问题&#xff1a; vscode leetcode [ERROR] invalid password?出现invalid password?的问题&#xff0c;首先需要检查账号密码是否出错&#xff0c;leetcode的账号可以是手机或邮箱&#xff0c;然后密码去check一下&…

Anaconda3-2023.07-2安装和配置教程

Anaconda3-2023.07-2安装和配置教程 前言一、彻底卸载python1、卸载python2、删除环境变量 二、下载Anaconda方式一&#xff1a;官网下载方式二、镜像站下载 三、安装Anaconda3四、配置环境变量五、检验安装是否成功1、查看anaconda版本2、查看python版本3、查看Anaconda Navif…

C (1094) : DS双向链表—前驱后继

Description 在双向链表中&#xff0c;A有一个指针指向了后继节点B&#xff0c;同时&#xff0c;B又有一个指向前驱节点A的指针。这样不仅能从链表头节点的位置遍历整个链表所有节点&#xff0c;也能从链表尾节点开始遍历所有节点。 对于给定的一列数据&#xff0c;按照给定的…

springboot2.7.15集成springcloud,springcloudalibaba

spring-cloud官方中文文档 spring-cloud官方文档 Spring Cloud Alibaba官方文档 这边用的是springboot2.7.15以下是集成springcloud,springcloudalibaba的版本推荐 <dependencyManagement><dependencies><!--SpringBoot整合Spring Cloud--><dependency…

梯度裁剪:torch.nn.utils.clip_grad_norm_详解

梯度裁剪是为了防止梯度爆炸。在训练FCOS算法时&#xff0c;因为训练过程出现了损失为NaN的情况&#xff0c;在github issue有很多都是这种训练过程出现loss为NaN&#xff0c;使用torch.nn.utils.clip_grad_norm_梯度裁剪函数&#xff0c;可以有效预防梯度爆炸的情况发生。 1 …

OpenCV4(C++)—— 图像阈值化

文章目录 前言一、固定阈值化 —— threshold二、自适应阈值化 —— adaptiveThreshold三、LUT查找表 前言 图像阈值化在许多计算机视觉和图像处理任务中都是一个重要的预处理步骤。在边缘检测过程中&#xff0c;通过将图像转换为二值图像&#xff0c;可以突出图像中的边缘信息…

Qt:多语言支持,构建全面应用程序“

Qt&#xff1a;强大API、简化框架、多语言支持&#xff0c;构建全面应用程序" 强大的API&#xff1a;Qt提供了丰富的API&#xff0c;包括250多个C类&#xff0c;基于模板的集合、序列化、文件操作、IO设备、目录管理、日期/时间等功能。还包括正则表达式处理和支持2D/3D…

制作长图海报的详细指南,制作长图海报的5个步骤

制作长图海报是宣传活动、产品或服务的重要方式之一。乔拓云后台提供了丰富的海报模板&#xff0c;让你轻松制作出专业级的长图海报。下面将介绍如何使用乔拓云后台制作长图海报的技巧。 一、选择模板 首先&#xff0c;注册并登录乔拓云后台&#xff0c;进入云设计页面。在选择…

C语言学生成绩录入系统

一、系统概述 该系统是一个由链表创建主菜单的框架&#xff0c;旨在快速创建学生成绩录入系统的主菜单结构。其主要任务包括&#xff1a; 实现链表的创建、插入和遍历功能&#xff0c;用于存储和展示学生成绩录入系统各个模块的菜单项。 2. 提供用户友好的主菜单界面&#xf…

证件照换底色详细教程

说到证件照的底色更改&#xff0c;我想对大部分朋友来说是蛮头疼的事情&#xff0c;由于我们不论是在生活还是学习中&#xff0c;有时候总会要上传一些证件照&#xff0c;而当你手上有证件照准备上传时&#xff0c;发现底色不对&#xff0c;是不是很抓狂&#xff0c;现在&#…

SpringCloud学习笔记-Eureka的服务拉取

假设是OrderService里面拉取Eureka的服务之一User Service 1.依然需要在该服务里面引入依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependenc…

水波纹文字效果动画

效果展示 CSS 知识点 text-shadow 属性绘制立体文字clip-path 属性来绘制水波纹 工具网站 CSS clip-path maker 效果编辑器 页面整体结构实现 使用多个 H2 标签来实现水波纹的效果实现&#xff0c;然后使用clip-path结合动画属性一起来进行波浪的起伏动画实现。 <div …

分析性质+dp计数:1007T4

http://cplusoj.com/d/senior/p/SS231007D 分析题目性质&#xff0c;有&#xff1a; 按编号顺序最短路必然为连续段边只会在连续段内和相邻连续段之间连 i i i 段 连 i 1 i1 i1 段&#xff0c; i 1 i1 i1 段中每个点恰有1条来自 i i i 的边 然后肯定是考虑 f ( l , r )…

Edge浏览器下载文件被保存为 .crdownload 文件的问题小记

问题 近期使用Edge浏览器下载文件时&#xff0c;文件都被保存为 .crdownload 格式的文件了&#xff0c;不确定从哪个版本开始的。除非下载未完成导致文件不完整&#xff0c;否则不会被保存为 .crdownload 格式的文件&#xff1b;实际上文件已完成了下载&#xff0c;且手工修改…