• 全网最详细的本地搭建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 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
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    在这里插入图片描述
    安装好之后需要赶紧登录上去使用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
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    注册一下

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

    gitlab-runner register
    
    • 1

    在这里插入图片描述

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

    [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!
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    安装之后需要安装一下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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48

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

    安装之后需要安装一下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
    
    • 1
    • 2
    • 3
    • 4

    配置环境变量

    vi /etc/profile
     
    添加以下内容:
    export MAVEN_HOME=/usr/local/maven-3.3.9
    export PATH=$MAVEN_HOME/bin:$PATH
    保存退出
     
    source /etc/profile
    mvn -v
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    安装之后需要安装一下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
    
    • 1
    • 2
    • 3

    配置环境变量

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    创建springboot项目

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

    mkdir gitlab-project-test
    
    • 1

    项目下创建文件 .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 &"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38

    设置页面显示中文

    在这里插入图片描述

    写在最后

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

  • 相关阅读:
    运动控制:分辨率、定位精度、重复定位精度
    Caused by: java.net.UnknownHostException: nacos
    Apache和Nginx实现虚拟主机的3种方式
    Linux常用命令字典篇
    区块链系统Docker&Kuberntes一键部署
    ES Query DSL-复合查询和关联查询
    bed has inconsistent naming convention for record
    武汉星起航:企业出海扩大影响力,良好的品牌建设是关键
    KdMapper扩展实现之AVG(aswArPot.sys)
    学习c++的第十三天
  • 原文地址:https://blog.csdn.net/weixin_50503886/article/details/133690857