当前位置: 首页 > news >正文

GitLab CI/CD使用runner实现自动化部署前端Vue2 后端.Net 7 Zr.Admin项目

1、查看gitlab版本

建议安装的runner版本和gitlab保持一致

2、查找runner

执行

yum list gitlab-runner --showduplicates | sort -r

找到符合gitlab版本的runner,我这里选择 14.9.1版本

如果执行出现找不到下载源,添加官方仓库

执行

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

3、安装runner

执行

yum install -y  gitlab-runner-14.9.1

查看安装runner的版本

执行

gitlab-runner -v

重启runner

执行

gitlab-runner restart

4、注册runner

进入项目信息页面

获取注册runner命令和注册所需的token

查看注册命令

真实的token,在进入获取注册命令页面之前的地方

注册runner

执行

sudo gitlab-runner register --url http://192.168.100.155:8088/ --registration-token GR1348941XFxw7VY3HN8qiyT-zXiT

上面的命令是从 Show runner installation instructions 页面复制,每个人的都不一样

执行命令后,会提示各个对应信息,直接复制给出的提示信息值即可

在要输入tags时,要记录输入的tags值,这个tags值对应流水线gitlab-ci.yml文件中的tags属性对应值

执行器executor一般为shell

注册完查看runner

执行

gitlab-runner list

页面上查看注册好的runner

可以再次编辑runner

点击编辑按钮

编辑页面显示的信息就是之前执行注册命令时填写的信息

5、CI/CD(创建gitlab-cli.yml)

进入CI/CD菜单,点击Editor进入gitlab-cli.yml编辑页面

查看创建的gitlab-ci.yml

执行gitlab-ci.yml文件定义的内容

查看执行过程的详细信息

点击 job的 Status列(passed那里),进入查看执行信息

6、gitlab-cli.yml 解析

# This file is a template, and might need editing before it works on your project.
# To contribute improvements to CI/CD templates, please follow the Development guide at:
# https://docs.gitlab.com/ee/development/cicd/templates.html
# This specific template is located at:
# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Getting-Started.gitlab-ci.yml# This is a sample GitLab CI/CD configuration file that should run without any modifications.
# It demonstrates a basic 3 stage CI/CD pipeline. Instead of real tests or scripts,
# it uses echo commands to simulate the pipeline execution.
#
# A pipeline is composed of independent jobs that run scripts, grouped into stages.
# Stages run in sequential order, but jobs within stages run in parallel.
#
# For more information, see: https://docs.gitlab.com/ee/ci/yaml/index.html#stages# 定义执行步骤,放在前面的先执行
# 这里的执行顺序为 build->test->deploy
stages:          # List of stages for jobs, and their order of execution- build- test- deploy#执行步骤详细内容
#stage:build 对应build步骤
build-job:       # This job runs in the build stage, which runs first.stage: build #对应执行步骤tags: # 指定的执行runner- zr-runner-0script: #执行脚本- echo "Compiling the code..."- echo "Compile complete."#stage:test 对应test步骤
unit-test-job:   # This job runs in the test stage.stage: test    # It only starts when the job in the build stage completes successfully.tags: - zr-runner-0script:- echo "Running unit tests... This will take about 60 seconds."- sleep 60- echo "Code coverage is 90%"#stage:test 对应test步骤
lint-test-job:   # This job also runs in the test stage.stage: test    # It can run at the same time as unit-test-job (in parallel).tags: - zr-runner-0script:- echo "Linting code... This will take about 10 seconds."- sleep 10- echo "No lint issues found."#stage:deploy deploy
deploy-job:      # This job runs in the deploy stage.stage: deploy  # It only runs when *both* jobs in the test stage complete successfully.tags: - zr-runner-0script:- echo "Deploying application..."- echo "Application successfully deployed."

7、自动部署Zr.Admin项目

# This file is a template, and might need editing before it works on your project.
# To contribute improvements to CI/CD templates, please follow the Development guide at:
# https://docs.gitlab.com/ee/development/cicd/templates.html
# This specific template is located at:
# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Getting-Started.gitlab-ci.yml# This is a sample GitLab CI/CD configuration file that should run without any modifications.
# It demonstrates a basic 3 stage CI/CD pipeline. Instead of real tests or scripts,
# it uses echo commands to simulate the pipeline execution.
#
# A pipeline is composed of independent jobs that run scripts, grouped into stages.
# Stages run in sequential order, but jobs within stages run in parallel.
#
# For more information, see: https://docs.gitlab.com/ee/ci/yaml/index.html#stages# 定义执行步骤,放在前面的先执行
# 这里的执行顺序为 build->test->deploy
stages:          # List of stages for jobs, and their order of execution- build-net7- build-vue2- deploy#执行步骤详细内容
#stage:build 对应build步骤
build-job-net7:       # This job runs in the build stage, which runs first.stage: build-net7 #对应执行步骤tags: # 指定的执行runner- zr-runner-0script: #执行脚本- echo "Compiling the code..."#停止容器- docker stop $(docker ps -a | grep 'zr-admin' | awk '{print $1}') || true#删除容器- docker rm $(docker ps -a | grep 'zr-admin' | awk '{print $1}') || true#删除镜像- docker rmi $(docker images | grep zr-admin | awk '{print $3}') || true#构建docker-  cd /lsp/code/zradmin/- docker build -f Dockerfile -t zr-admin .- echo "Compile complete."# 设置GIT_STRATEGY为none来避免拉取代码variables:GIT_STRATEGY: nonebuild-job-vue2:       # This job runs in the build stage, which runs first.stage: build-vue2 #对应执行步骤tags: # 指定的执行runner- zr-runner-0script: #执行脚本- echo "Compiling the code..."- cd /lsp/code/zradmin/ZR.Vue/- npm cache clean --force- npm install --unsafe-perm=true --allow-root- npm run build:prod- echo "Compile complete."# 设置GIT_STRATEGY为none来避免拉取代码variables:GIT_STRATEGY: nonecache:paths:- node_modules/artifacts:paths:- dist/#stage:deploy deploy
deploy-job:      # This job runs in the deploy stage.stage: deploy  # It only runs when *both* jobs in the test stage complete successfully.tags: - zr-runner-0script:- echo "Deploying application..."- echo "启动后端..."- docker run --net=host -p 8888:80 zr-admin- echo "启动后端成功"- echo "启动前端"- systemctl restart nginx- echo "启动前端成功"- echo "Application successfully deployed."

由于存在调试代码,设置了执行任务不需要更新代码

  # 设置GIT_STRATEGY为none来避免拉取代码

  variables:

    GIT_STRATEGY: none

如果在执行的过程中出现 权限问题

permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock

执行

#查看是否将docker加入用户组
groups#如果没有,加入
sudo usermod -aG docker $USER#给插件赋权
sudo chmod 666 /var/run/docker.sock

然后查看runner的权限

执行

#如果执行下面语句报错,就是有权限问题
sudo -u gitlab-runner -H docker info#然后执行下面这句
sudo usermod -aG docker gitlab-runner

如果runner是解决权限问题之前创建的,建议在赋权之后重新创建runner

执行完上面的命令,还出现权限问题,重启系统再试试!!!

如果还不行,就将runner改成root权限,默认安装完runner,用的是gitlab-runner用户

具体操作参考gitlab-runner执行权限不足

相关文章:

GitLab CI/CD使用runner实现自动化部署前端Vue2 后端.Net 7 Zr.Admin项目

1、查看gitlab版本 建议安装的runner版本和gitlab保持一致 2、查找runner 执行 yum list gitlab-runner --showduplicates | sort -r 找到符合gitlab版本的runner,我这里选择 14.9.1版本 如果执行出现找不到下载源,添加官方仓库 执行 curl -L &quo…...

web前端第五次作业---制作菜单

制作菜单 代码: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><style…...

软件系统安全逆向分析-混淆对抗

1. 概述 在一般的软件中&#xff0c;我们逆向分析时候通常都不能直接看到软件的明文源代码&#xff0c;或多或少存在着混淆对抗的操作。下面&#xff0c;我会实践操作一个例子从无从下手到攻破目标。 花指令对抗虚函数表RC4 2. 实战-donntyousee 题目载体为具有漏洞的小型软…...

HAMi + prometheus-k8s + grafana实现vgpu虚拟化监控

最近长沙跑了半个多月&#xff0c;跟甲方客户对了下项目指标&#xff0c;许久没更新 回来后继续研究如何实现 grafana实现HAMi vgpu虚拟化监控&#xff0c;毕竟合同里写了需要体现gpu资源限制和算力共享以及体现算力卡资源共享监控 先说下为啥要用HAMi吧&#xff0c; 一个重要原…...

Java基于SSM框架的在线视频教育系统小程序【附源码、文档】

博主介绍&#xff1a;✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3…...

mysql本地安装和pycharm链接数据库操作

MySQL本地安装和相关操作 Python相关&#xff1a;基础、函数、数据类型、面向、模块。 前端开发&#xff1a;HTML、CSS、JavaScript、jQuery。【静态页面】 Java前端&#xff1b; Python前端&#xff1b; Go前端 -> 【动态页面】直观&#xff1a; 静态&#xff0c;写死了…...

Unity编程与游戏开发-编程与游戏开发的关系

游戏开发是一个复杂的多领域合作过程,涵盖了从创意构思到最终实现的多个方面。在这个过程中,技术、设计与美术三大核心要素相互交织,缺一不可。在游戏开发的过程中,Unity作为一款强大的跨平台游戏引擎,凭借其高效的开发工具和庞大的社区支持,成为了很多游戏开发者的首选工…...

2025年第三届“华数杯”国际赛A题解题思路与代码(Python版)

游泳竞技策略优化模型代码详解 第一题&#xff1a;速度优化模型 在这一部分&#xff0c;我们将详细解析如何通过数学建模来优化游泳运动员在不同距离比赛中的速度分配策略。 1. 模型概述 我们的模型主要包含三个核心文件&#xff1a; speed_optimization.py: 速度优化的核…...

针对服务器磁盘爆满,MySql数据库始终无法启动,怎么解决

&#xff08;点击即可进入聊天助手&#xff09; 很多站长在运营网站的过程当中都会遇到一个问题,就是网站突然无法打开,数据一直无法启动 无论是强制重启还是,删除网站内的所有应用,数据库一直无法启动 这个时候,就需要常见的运维手段了,需要对服务器后台各个资源,进行逐一排查…...

[Android]service命令的使用

在前面的讨论中,我们说到,如果在客户端懒得使用aidl文件生成的接口类进行binder,可以使用IBinder的transcat方法 Parcel dataParcel = Parcel.obtain(); Parcel resultParcel = Parcel.obtain();dataParcel.writeInterfaceToken(DESCRIPTOR);//发起请求 aProxyBinder.trans…...

【芯片封测学习专栏 -- Substrate | RDL Interposer | Si Interposer | 嵌入式硅桥(EMIB)详细介绍】

请阅读【嵌入式开发学习必备专栏 Cache | MMU | AMBA BUS | CoreSight | Trace32 | CoreLink | ARM GCC | CSH】 文章目录 OverviewSubstrate&#xff08;衬底或基板&#xff09;Substrate 定义Substrate 特点与作用Substrate 实例 RDL Interposer&#xff08;重布线层中介层&a…...

spring cloud注册nacos并从nacos上拉取配置文件,spring cloud不会自动读取bootstrap.yml文件

目录 踩坑问题记录前言版本说明spring cloudb不会自动读取bootstrap.yml文件问题解决spring cloud注册nacos并从nacos上拉取配置文件后话 踩坑问题记录 1、spring cloudb不会自动读取bootstrap.yml文件 2、spring cloud注册nacos并从nacos上拉取配置文件 前言 使用cloud Ali…...

【深度学习地学应用|滑坡制图、变化检测、多目标域适应、感知学习、深度学习】跨域大尺度遥感影像滑坡制图方法:基于原型引导的领域感知渐进表示学习(一)

【深度学习地学应用|滑坡制图、变化检测、多目标域适应、感知学习、深度学习】跨域大尺度遥感影像滑坡制图方法&#xff1a;基于原型引导的领域感知渐进表示学习&#xff08;一&#xff09; 【深度学习地学应用|滑坡制图、变化检测、多目标域适应、感知学习、深度学习】跨域大…...

Spring Boot 支持哪些日志框架

Spring Boot 支持多种日志框架&#xff0c;主要包括以下几种&#xff1a; SLF4J (Simple Logging Facade for Java) Logback&#xff08;默认&#xff09;Log4j 2Java Util Logging (JUL) 其中&#xff0c;Spring Boot 默认使用 SLF4J 和 Logback 作为日志框架。如果你需要使…...

【翻译】2025年华数杯国际赛数学建模题目+翻译pdf自取

保存至本地网盘 链接&#xff1a;https://pan.quark.cn/s/f82a1fa7ed87 提取码&#xff1a;6UUw 2025年“华数杯”国际大学生数学建模竞赛比赛时间于2025年1月11日&#xff08;周六&#xff09;06:00开始&#xff0c;至1月15日&#xff08;周三&#xff09;09:00结束&#xff…...

qt 窗口(window/widget)绘制/渲染顺序 QPainter QPaintDevice Qpainter渲染 失效 无效 原因

qt窗体布局 窗体渲染过程 qt中窗体渲染逻辑顺序为 本窗体->子窗体/控件 递归&#xff0c;也就是说先渲染父窗体再渲染子窗体。其中子窗体按加入时的先后顺序进行渲染。通过下方的函数调用堆栈可以看出窗体都是在widget组件源码的widgetprivate::drawwidget中进行渲染的&am…...

TIOBE编程语言排行靠前的编程语言的吉祥物

Python的吉祥物&#xff1a;小蟒蛇 Python语言的吉祥物是一只名叫"Pythonidae"&#xff08;或简称"Py"&#xff09;的小蟒蛇。这个吉祥物由Tobias Kohn设计于2005年&#xff0c;它的形象借鉴了真实的蟒蛇&#xff0c;但加入了一些可爱和友善的特点。小蟒蛇…...

【前端动效】HTML + CSS 实现打字机效果

目录 1. 效果展示 2. 思路分析 2.1 难点 2.2 实现思路 3. 代码实现 3.1 html部分 3.2 css部分 3.3 完整代码 4. 总结 1. 效果展示 如图所示&#xff0c;这次带来的是一个有趣的“擦除”效果&#xff0c;也可以叫做打字机效果&#xff0c;其中一段文本从左到右逐渐从…...

大疆上云API连接遥控器和无人机

文章目录 1、部署大疆上云API关于如何连接我们自己部署的上云API2、开启无人机和遥控器并连接自己部署的上云API如果遥控器和无人机没有对频的情况下即只有遥控器没有无人机的情况下如果遥控器和无人机已经对频好了的情况下 4、订阅无人机或遥控器的主题信息4.1、订阅无人机实时…...

JS逆向-atob和btoa分析

声明&#xff1a;本文只作学习研究&#xff0c;禁止用于非法用途&#xff0c;否则后果自负&#xff0c;如有侵权&#xff0c;请告知删除&#xff0c;谢谢&#xff01; 故事是这样的&#xff0c;有位读者朋友需要模拟登录一个网站&#xff1a; aHR0cDovL3d3dy56bGRzai5jb20v 我…...

primitive 编写着色器材质

import { nextTick, onMounted, ref } from vue import * as Cesium from cesium import gsap from gsaponMounted(() > { ... })// 1、创建矩形几何体&#xff0c;Cesium.RectangleGeometry&#xff1a;几何体&#xff0c;Rectangle&#xff1a;矩形 let rectGeometry new…...

计算机视觉算法实战——车道线检测

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​​​​​​ ​​​​​​​​​​​​ ​​​​​ 车道线检测是计算机视觉领域的一个重要研究方向&#xff0c;尤其在自动驾驶和高级驾驶辅助…...

网络安全-安全散列函数,信息摘要SHA-1,MD5原理

安全散列函数 单向散列函数或者安全散列函数之所以重要&#xff0c;不仅在于消息认证(消息摘要。数据指纹)。还有数字签名&#xff08;加强版的消息认证&#xff09;和验证数据的完整性。常见的单向散列函数有MD5和SHA 散列函数的要求 散列函数的目的是文件、消息或者其它数据…...

树莓派-5-GPIO的应用实验之GPIO的编码方式和SDK介绍

文章目录 1 GPIO编码方式1.1 管脚信息1.2 使用场合1.3 I2C总线1.4 SPI总线2 RPI.GPIO2.1 PWM脉冲宽度调制2.2 静态函数2.2.1 函数setmode()2.2.2 函数setup()2.2.3 函数output()2.2.4 函数input()2.2.5 捕捉引脚的电平改变2.2.5.1 函数wait_for_edge()2.2.5.2 函数event_detect…...

《零基础Go语言算法实战》【题目 2-10】接口的实现

《零基础Go语言算法实战》 【题目 2-10】接口的实现 请指出下面代码中存在的问题。 type Programmer struct { Name string } func (p *Programmer) String() string { return fmt.Sprintf("print: %v", p) } func main() { p : &Programmer{} p.String()…...

Win32汇编学习笔记10.OD插件

Win32汇编学习笔记10.OD插件-C/C基础-断点社区-专业的老牌游戏安全技术交流社区 - BpSend.net 筛选器异常插件 被调试程序: &#x1f4ce;TestUnh.zip 我们用OD条试试发现,无法断下 筛选器异常 异常产生之后 异常首先会给调试器 调试器不处理就会给 SEH , SEH 不处理的话有又给…...

在vscode中已经安装了插件Live Server,但是在命令面板确找不到

​​​​​ 1、VS Code缓存问题&#xff1a; 有时VS Code的缓存可能导致插件无法正确加载。尝试删除VS Code缓存文件夹&#xff08;如C:\Users\你的用户名\AppData\Roaming\Code&#xff09;中的文件&#xff0c;并重启VS Code。 2、重新安装插件&#xff1a; 尝试卸载Live S…...

C# SQL ASP.NET Web

留学生的课程答疑 按照要求完成程序设计、数据库设计、用户手册等相关技术文档&#xff1b; 要求 1. 计算机相关专业&#xff0c;本科以上学历&#xff0c;至少有1年以上工作经验或实习经历。 2. 熟练掌握WinForm程序开发&#xff0c;或ASP.NET Web编程。 3. 熟悉C#中网络…...

联想java开发面试题及参考答案

IP 协议是哪一层的? IP 协议(Internet Protocol)属于网络层协议。 网络层主要负责将数据从源节点传输到目标节点,它在整个网络通信体系中起到了承上启下的关键作用。在分层网络模型中,下层(如数据链路层)为网络层提供物理链路的连接和帧传输服务。数据链路层关注的是在相…...

Node.js中的fs模块:文件与目录操作(写入、读取、复制、移动、删除、重命名等)

在Node.js中&#xff0c;fs模块提供了多种方法来处理文件和目录操作&#xff0c;使得数据的持久性保存和文件管理变得简单。下面将介绍文件读写、文件复制、文件移动、文件重命名、文件删除、文件夹创建与删除以及查看资源状态等常用操作。 首先&#xff0c;在使用写入和读取功…...

福州网站建设公司/电商网站大全

8.1 Spring Cloud Config 概述 Spring Cloud Config是Spring Cloud微服务体系中的配置中心,是微服务中不可或缺的一部分,主要功能是可以将程序中的配置文件、功能开关、参数配置、分环境、分集群等功能集中化配置管理,有利于系统的管理和后续运维。 8.1.1 什么是配置中心 …...

中为网站建设/广告联盟点击赚钱平台

bot_kick (踢出所有电脑) sv_showimpacts 1 (显示弹痕) mp_roundtime_defuse 60 (休闲/竞技模式每局时间60分钟) give weapon_hegrenade (获取一枚手雷) give weapon_flashbang (获取一枚闪光震撼弹) give weapon_smokegrenade (获取一枚烟雾弹) sv_grenade_trajectory 1 (关闭…...

wordpress 注册字段/baidu百度

np.random.permutation 是 numpy 中的一个函数&#xff0c;它可以将一个数组中的元素随机打乱&#xff0c;返回一个打乱后的新数组。 使用方法如下&#xff1a; import numpy asnp# 对一个列表进行打乱 arr [1, 2, 3, 4, 5] np.random.permutation(arr)# 对一个 numpy 数组进行…...

联合易网做网站/搜狗seo

细致说明RBF神经网络与多层感知器网络的比较RBF 网络与多层感知器都是非线性多层前向网络 &#xff0c; 它们都是通用逼近器 。 对于任一个多层感知器 &#xff0c; 总存在一个 RBF 网络可以代替它 &#xff0c; 反之亦然 。 但是 &#xff0c; 这两个网络也存在着很多不同点 。…...

娄底网站建设/湖南seo推广服务

首先&#xff0c;我不是刻意去学习Postmessage函数&#xff0c;也不愿意花费很多经历去研究API。但是为了完善自己的知识和体现域学式的学习方法&#xff0c;顺便研究了一下这个函数。 网上有很多关于Postmessage发送消息无效的问题&#xff0c;但是没有人回答。在此我肤浅的解…...

顶尖手机网站建设/网络营销的整体概念

1、简介dozer是一种JavaBean的映射工具&#xff0c;类似于apache的BeanUtils。但是dozer更强大&#xff0c;它可以灵活的处理复杂类型之间的映射。不但可以进行简单的属性映射、复杂的类型映射、双向映射、递归映射等&#xff0c;并且可以通过XML配置文件进行灵活的配置。2、准…...