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

news/2025/1/17 20:36:20/

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执行权限不足


http://www.ppmy.cn/news/1563968.html

相关文章

数据结构-顺序表及链表结构分析

文章目录 一、顺序表的插入&删除Ⅰ.顺序表的插入(增)1.1 顺序表的尾插1.2 顺序表的头插1.3 顺序表的指定位置插入 Ⅱ.顺序表的移除元素(删)2.1 顺序表的尾删2.2 顺序表的头删2.3 顺序表的指定位置删除 Ⅲ.顺序表数据的查找Ⅳ.顺序表的销毁 二、链表的插入(增)1.单链表的尾插…

HTTP:Nagle算法与TCP_NODELAY

背景:TCP 有一个数据流接口,应用程序可以通过它将任意尺寸的数据放入 TCP 栈中—— 即使一次只放一个字节也可以!但是,每个 TCP 段中都至少装载了 40 个字节的标记和首部,所以如果 TCP 发送了大量包含少量数据的分组,网…

【 MySQL学习1】简介

文章目录 一、一些概念1.1 什么是数据库1.2 数据库管理系统1.3 SQL1.4 三者之间的关系 二 安装MySQL数据库三、命令启动3.1 停止服务3.2 启动服务 一、一些概念 1.1 什么是数据库 英文单词DataBase, 简称DB。 按照一定格式存储数据的一些文件的组合。 存储数据的仓…

微信小程序:实现首页权限菜单效果

一、效果 二、数据库表 1、菜单表 包含权限名称,模块名称,图标名称,页面跳转的方法,菜单是否显示栏位 2、角色对应权限表 包含角色id和权限id,这个表将角色和菜单角色连接,给角色赋予权限功能 3、 账户表 用于绑定账号隶属于什么角色,绑定的角色表 4、角色表 菜单的…

配置AOSP下载环境

1#curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo 2#repo init -u https://android.googlesource.com/platform/manifest 3#清华镜像站帮助页 https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/ 4#同步安卓AOSP 这里是安卓13 repo init -u htt…

深入解析:Python机器学习在气象领域中的应用实例——GFS数值模式的风速预报订正。数据处理、科学计算、数学建模、数据挖掘和数据可视化

在气象领域,全球预报系统(GFS)数值模式的风速预报订正是一个关键的应用场景,其中机器学习技术发挥了重要作用。本文将详细解析这一应用实例,包括所用到的公式和代码,帮助读者更好地理解如何利用Python和机器…

AI Agent:软件测试自动化的新纪元

在信息技术日新月异的今天,人工智能(AI)技术的蓬勃发展正引领着各个行业的深刻变革,软件测试领域同样迎来了前所未有的机遇与挑战。AI Agent,这一融合了先进机器学习与自然语言处理技术的智能实体,正悄然成…

提高互联网Web安全性:避免越权漏洞的技术方案

目录 一、越权漏洞概述 二、常见的越权漏洞类型 三、越权漏洞的影响 四、越权漏洞的技术解决方案 一、越权漏洞概述 越权(Authorization Bypass)类漏洞是指在系统中,攻击者通过绕过身份验证或访问控制,获取本不应访问的资源或…