CI/CD:如何使用 GitLab 执行 SpringBoot 前后端分离项目的持续集成与持续交付(持续部署)?

news2024/10/6 20:38:13

一、GitLab Runner 安装

官网各系统 & 各方式安装说明:https://docs.gitlab.com/runner/install/

本文基于阿里云 CentOS 安装 GitLab Runner (Linux Shell 方式,非 Docker 方式)

1.1 GitLab Runner 介绍

GitLab Runner 是开源的且用 Go 编写,它可以作为单个二进制文件运行且没有特定于编程语言的要求。

1.2 Install GitLab Runner in CentOS7

  • CURL 拉取 RPM
    curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh" | sudo bash

在这里插入图片描述

  • 安装:y n 连
yum install gitlab-runner

在这里插入图片描述
在这里插入图片描述

  • 注册 Runner

    • 官网注册说明:https://docs.gitlab.com/runner/register/index.html
      • Install it on a server separate than where GitLab is installed(GitLabRunner 与 GitLab 安装在不同位置):Done
      • Obtain a token(获取一个 token):https://docs.gitlab.com/ee/ci/runners/register_runner.html
    • 获取 token:For a project runner (针对某个项目的 runner)
      在这里插入图片描述
      • 找到某个项目(以个人 SpringBoot 项目为例):在项目主页点击 设置(Settings)-CI/CD,选择 New project runner
        在这里插入图片描述

      • 选择平台,填写 runner 描述等信息
        在这里插入图片描述
        在这里插入图片描述

      • 点击上图 Create runner
        在这里插入图片描述

    • 注册 Runner
      在这里插入图片描述
    • 第一步:复制粘贴如下命令到安装了 Runner 的命令行以注册 runner
    • 第二步:选择 Runner 执行器
      在这里插入图片描述
    • 第三步:手动确认 runner 可以拉取 jobs (pick up jobs):出现警告,检查 .ssh 配置公钥到 gitlab(见附录)
      在这里插入图片描述
  • 去 runner 页
    在这里插入图片描述

2. CI/CD:SpringBoot 后端项目部署

  • 在 Gitlab Runner 所在服务器上安装 Runner 环境:略
    • git 安装(git clone 仓库项目记得 SSH 免密登录配置,在本文最后一部分有 SSH 免密登录配置)
    • maven 安装
  • 在需部署 SpringBoot 后端项目的服务器上(本文通 Runner 所在服务器)安装 JDK:略
  • 编写 .gitlab-ci.yml 文件,内容如下

  • Commit 代码,触发流水线
    在这里插入图片描述

在这里插入图片描述

X. Runner WARNING:Checking for jobs… failed runner=rPbMnmqED status=502 Bad Gateway

解决:502 Bad Gateway。

  • 生成 SSH 公钥:若有,则可以不执行
    在这里插入图片描述
  • 复制 id_rsa.pub 的内容到 gitlab 并点击 add key
    在这里插入图片描述
  • 重新执行 gitlab-runner run

在这里插入图片描述

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

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

相关文章

GPT面试知识点

0.GPT的模型结构 GPT是一个基于Transformer的生成式预训练模型。使用Transformer中的解码器部分 它由一系列的模块化的Transformer Blocks组成。每一个Block包含一个多头自注意力机制(Multi-Head Self-Attention mechanism)以及一个位置前馈网络(position-wise feedforward n…

Redis - 原理篇

✨作者:猫十二懿 ❤️‍🔥账号:CSDN 、掘金 、个人博客 、Github、语雀 🎉公众号:猫十二懿 Redis(原理篇) 一、数据结构 1.1 动态字符串SDS 我们都知道Redis中保存的Key是字符串,value往往是字符串或者字…

Spring Boot如何实现分布式锁的自动释放

Spring Boot如何实现分布式锁的自动释放 在分布式系统中,为了保证数据的一致性和可靠性,常常需要使用分布式锁。在实际开发中,我们可以使用 Redis、Zookeeper 等分布式系统来实现分布式锁。本文将介绍如何使用 Spring Boot 来实现分布式锁的…

Android Input子系统 - kernel

目录 前言 数据结构 输入子系统流程 前言 上一节有展示Android Input子系统的架构图,这里我们关心Linux kernel层 可以看到kernel层分为三层: 输入子系统设备驱动:处理与硬件相关的信息,调用input API注册输入设备,并把数据往上报 输入子系统核心层:为事件处理层和设…

关于QGroundControl的软件架构的理解

首先QGC是基于QT平台开发,个人理解软件架构即为项目前后端结构,以及前后端数据交互的逻辑。下面是对QGroundControl源码的一些个人理解,写这个博客只是为了记录下来,防止时间久了忘记,过程中看了一些大佬的博客来帮助理…

服务运营 |摘要: Healthcare Management Science 近期论文汇总

推文作者:李舒湉 罗毓灵 编者按 Healthcare Management Science 近期论文汇总 Healthcare Management Science 论文精选(三月下) 1Monitoring policy in the context of preventive treatment of cardiovascular disease https://link.sprin…

SQL——视图检查选项 local

create table stue ( id int auto_increment primary key comment 客户编号, name varchar(20) comment 客户名称, mima varchar(100) comment客户密码 , phonr varchar(20) comment 客户电话, xb char(2) …

【目录】《电路》上下、《电力电子学》、《数字电路》

1、知乎----作为电力电子专业的学生,有哪些专业书籍值得反复阅读? 一门课 / 一本书 经不经典,直接去 中国大学MOOC 上搜一搜就知道了 《电路》 电路主要讲:电压、电阻、电容的一些计算公式 《电力电子学》 https://www.zhih…

Hexo 搭建博客并推送GitHub

初始Hexo npm install hexo-cli -g hexo init blog cd blog npm install hexo server浏览器访问:http://localhost:4000/ 设置GitHub 1、首先要注册一个Github账号,新建一个name.github.io的仓库,也就是new repository。 因为博主之前创建…

Sui主网升级至V1.2.0版本

升级要点 [API行为调整] — 因rpc方法导致的UserInputError、 SuiRpcInputError、SuiError::TransactionNotFound以及SuiError::TransactionsNotFound报错,现在返回错误代码为32602,取代了32000。此信息已在#11833 #11928中更正。 修复了get_coin_meta…

Python实战基础18-文件操作

1、文件的打开和关闭 1.1 操作文件的整体过程 打开文件,或者新建立一个文件读/写数据关闭文件 1.2 打开文件 在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件。 open(文件路径,访问模式) …

【教程】在 Visual Studio 2015 上对 C++ 进行单元测试

更新中 目录 前言环境Visual Studio 2015 提供的单元测试工具创建 C 测试框架在测试项目内测试一个函数测试另一个 Project 的函数参考 前言 本文的测试环境是 Visual Studio 2015,高级别版本(如,2017,2022)的操作略有…

SpringBoot + 规则引擎 URule,太强了!

一、背景 前段时间,在做项目重构的时候,遇到很多地方需要做很多的条件判断。当然可以用很多的if-else判断去解决,但是当时也不清楚怎么回事,就想玩点别的。于是乎,就去调研了规则引擎。 当然,市面上有很多…

[unity]如何并行for循环

序 并行for循环 计算着色器里可以弄,但是那个得先了解一堆api,比如什么setBuffer unity 的 job system好像也可以弄,但是那个也得先了解一堆api 这些都是大而全的,有没有那种,没那么神通广大但是比较容易上手的&am…

【CocosCreator入门】CocosCreator组件 | TiledTile(地图块)组件

📢博客主页:肩匣与橘📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢本文由肩匣与橘编写,首发于CSDN🙉📢生活依旧是美好而又温柔的,你也是✨ …

HIve技术详解(一)

第1章 Hive基本概念 1.1 Hive 1.1.1 Hive的产生背景 在那一年的大数据开源社区,我们有了HDFS来存储海量数据、MapReduce来对海量数据进行分布式并行计算、Yarn来实现资源管理和作业调度。但是面对海量数据和负责的业务逻辑,开发人员要编写MR来对数据进…

3.3 最长公共子序列

博主简介:一个爱打游戏的计算机专业学生博主主页: 夏驰和徐策所属专栏:算法设计与分析 1.什么是子序列? 我的理解: 在字符串或序列中,子序列是指从原始序列中删除零个或多个元素后得到的序列,…

Spring Boot如何实现分布式事务的协调和管理

Spring Boot如何实现分布式事务的协调和管理 在分布式系统中,事务是非常重要的一部分,可以保证多个操作在一个原子性的操作中完成,确保数据的一致性和可靠性。在分布式系统中,分布式事务需要考虑多个服务之间的数据一致性和事务提…

论文排版!

目录 Visio画图后,粘贴到word白边太宽? 【IEEE论文投稿word中双栏情况下插入单栏效果图片】 论文排版之Word双栏排版问题解决 Word公式居中,公式序号靠右(制表位实现) 请问word如何实现这种长公式的排版&#xff1…

MVCC 实现原理

💟这里是CS大白话专场,让枯燥的学习变得有趣! 💟没有对象不要怕,我们new一个出来,每天对ta说不尽情话! 💟好记性不如烂键盘,自己总结不如收藏别人! &#x1f…