使用流水线插件实现持续集成、持续部署
创始人
2025-06-01 01:28:34
0

流水线插件 是基于 Rainbond 插件体系 扩展实现,通过插件化的方式,可以实现对 Rainbond 构建体系的扩展。该插件由社区合作伙伴 拓维信息 参与开发并贡献,底层是基于 GitLab CI/CD 实现。

流水线构建与 Rainbond 源码构建的区别是:

  • Rainbond 源码构建:使用简单,固定的构建模式,用户只需提供源代码,但不是很灵活。
  • 流水线构建:自定义构建步骤,使用更加灵活。

本文将介绍使用流水线插件部署 RuoYi SpringBoot 项目,并实现提交代码后自动构建、自动部署。

安装 GitLab 和 Runner

流水线插件是基于 GitLab 实现,所以需要依赖 GitLab 和 GitLab Runner,如果已有则可跳过此步。

通过 Rainbond 开源应用商店部署 GitLab 和 Runner,进入到 平台管理 -> 应用市场 -> 开源应用商店 中分别搜索 GitLabGitLab-runner,选择版本进行安装,分别安装到同一个应用内。

部署完成后,访问 GitLab 默认的域名进行用户注册。然后关闭 GitLab 默认的 AutoDevOps:Admin -> Settings -> CI/CD -> Continuous Integration and Deployment 取消勾选 Default to Auto DevOps pipeline for all projects

注册 Runner

GitLab 和 Runner 都部署完成后,需要将 Runner 注册到 GitLab 中。

进组 Runner 组件内 -> Web 终端,执行以下命令进行注册:

  • 为 GitLab 访问地址
  • 在 GitLab 的 Admin -> Runners 获取 Registration token
  • 自定义 Runner 的标签。
gitlab-runner register \--non-interactive \--executor "docker" \--docker-image alpine:latest \--url "" \--registration-token "" \--description "docker-runner" \--tag-list "" \--run-untagged="true" \--locked="false" \--docker-volumes /var/run/docker.sock:/var/run/docker.sock \--docker-volumes /root/.m2/repository \--docker-privileged="true" \--access-level="not_protected" \--docker-pull-policy="if-not-present"

注册完成后,可以在Admin -> Runners 页面中看到如下图,Statusonline 则正常。

安装流水线插件

通过 Rainbond 开源应用商店部署 Pipeline 应用插件,进入到 平台管理 -> 应用市场 -> 开源应用商店 中搜索 Pipeline,选择对应的版本进行部署。

安装完成后,需要修改 Pipeline-Backend 服务的配置,进入到 Pipeline 应用内 -> Pipeline-Backend组件内,修改以下环境变量:

  • RAINBOND_URL:Rainbond 控制台访问地址,例如:http://192.168.3.33:7070
  • RAINBOND_TOKEN:Rainbond 控制台的 Token,可以在 右上角用户 -> 个人中心 -> 访问令牌 中获取。

修改完成后,更新或重启 Backend 组件生效。

进入到 Pipeline 应用内 -> k8s 资源 -> 编辑 rainbond-pipeline,修改 pipeline 资源中的 access_urls 配置,修改为 Pipeline-UI 组件的对外访问地址,如下:

apiVersion: rainbond.io/v1alpha1
kind: RBDPlugin
metadata:labels:plugin.rainbond.io/name: pipelinename: pipeline
spec:access_urls:- https://custom.comalias: Pipelineauthor: Talkwebdescription: 该应用插件是基于 GitLab CI/CD 实现,扩展 Rainbond 已有的构建体系。icon: https://static.goodrain.com/icon/pipeline.pngversion: 1.0.0

修改完成后,就可以在每个团队视图中看到 流水线 按钮选项了。

部署 RuoYi 项目

将 Gitee 中的 RuoYi 项目 Fork 到私有的 GitLab 中。

修改项目配置文件中的 mysql 连接地址:

# ruoyi-admin/src/main/resources/application-druid.yml
......
spring:datasource:type: com.alibaba.druid.pool.DruidDataSourcedriverClassName: com.mysql.cj.jdbc.Driverdruid:# 主库数据源master:url: jdbc:mysql://${MYSQL_HOST}:3306/ry?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8username: rootpassword: root

部署 MySQL

通过 Rainbond 开源应用商店部署 MySQL 即可。部署之后打开 MySQL 对外服务端口,通过本地工具连接到数据库并创建 ry 数据库和初始化 sql 目录下的 quartz.sqlry_20230223.sql

部署 RuoYi SpringBoot

进入到 团队视图 -> 流水线

1.创建流水线

进入流水线管理,选择 Java Maven 单模块的模版创建。

如果没有 SonarQube 代码扫描步骤可以删除,修改 编译构建物 步骤:

  • 制品目录:ruoyi-admin/target/*.jar

修改 构建镜像 步骤:

  • 脚本命令:
cp ruoyi-admin/target/*.jar app.jar
docker login -u ${REPOSITORY_USERNAME} -p ${REPOSITORY_PASSWORD} ${REPOSITORY_URL}
docker build -t  ${REPOSITORY_URL}/${ORG}/${MODULE}:${DEVOPS_VERSION} .
docker push ${REPOSITORY_URL}/${ORG}/${MODULE}:${DEVOPS_VERSION}

在流水线的变量内,指定 Docker 相关的环境变量用于打包镜像和推送镜像:

  • REPOSITORY_URL:镜像仓库地址,如:registry.cn-hangzhou.aliyuncs.com
  • ORG:镜像仓库组织,例如:goodrain
  • REPOSITORY_USERNAME:镜像仓库用户名
  • REPOSITORY_PASSWORD:镜像仓库密码

2.创建应用服务

  • 服务编码:唯一的
  • 服务名称:自定义
  • 流水线:选择流水线模版
  • 仓库配置:填写仓库地址,如:http://gitlab.test.com/root/ruoyi.git
  • 认证配置:可选用户密码或Token

创建应用服务后,可在 GitLab 仓库内看到多了两个文件 Dockerfile.gitlab-ci.yml ,这是由流水线插件服务自动生成并提交到仓库内。

3.构建服务

进入 代码管理,应用服务选择 ruoyi,点击 构建 按钮开始构建。可以在持续集成页面看到构建状态以及步骤,点击步骤可跳转至 GitLab 详情页。

4. 部署后端服务

等待构建完成后,即可在镜像仓库中看到构建的镜像版本,接下来就可以通过该版本进行部署,可选择部署到当前团队下的哪个应用内。

部署完成后,可在部署历史页面看到部署历史,点击部署详情跳转到 Rainbond 组件内。

编辑依赖关系

接下来进入到应用内,切换到编排模式将 ruoyi 服务依赖至 MySQL 服务,并更新 ruoyi 组件。

进入到 ruoyi 组件内 -> 端口,添加 80 端口并打开对外服务,即可通过默认的域名访问到 ruoyi UI。

配置自动构建和自动部署

编辑已经创建的应用服务,打开自动构建和自动部署按钮,下次提交代码时将会自动触发整个流程。

最后

通过流水线插件可以更灵活的扩展构建过程,比如增加代码扫描、构建成功后的消息通知等等。流水线插件也会持续迭代,欢迎大家安装使用!

相关内容

热门资讯

吕文扬的永安亚博之行 初春的清晨,吕文扬踏上了前往永安市的列车。车窗外的景色如流动的画卷,从都市的钢筋铁骨逐渐过渡到郊野的...
传祺向往S7智趣露营节广州站开... 5月31日,广汽传祺“向往S7智趣家庭露营节”在广州举行。活动以“自然探索+科技体验”为核心,吸引数...
单房造价再次刷新!看城市便捷4... 2025上半年的酒店业,可谓是喜忧参半。一边是大量高端酒店被折价甩卖,挂牌拍卖的数量越来越多,但半数...
向往的生活 传祺向往S7智趣家... 以露营之名,探寻人生每一种与众不同的意义,6月1日,在这个充满活力的初夏,【向往的生活 传祺向往S7...
新场景新业态层出不穷 文旅“玩... 来源:央视网央视网消息: 这个端午假期,形式丰富的文化演出在满足群众假日文化需求的同时,也为文旅融合...
河南人的鱼头酒,从头到尾108... 在河南的酒桌文化中,有一种极具特色的饮酒习俗——“鱼头酒”,甚至衍生出“鱼头酒108杯”的说法。 这...
家常炖燕鱼:简单美味,轻松享受... 在家里做饭,很多人都会追求简单又美味的菜肴。今天,我想和大家分享一种简单易学的炖燕鱼的家常做法。燕鱼...
不是鱼却很补脑,这个优质蛋白被... ⚬ 小管鱿鱼(北方人称其为“海兔”“笔管”)——这种细长如火箭的夏日小海鲜,蛋白质堪比牛肉,脂肪却不...
“水果夹酸奶”风靡长沙,湘菜馆... 文/视频 三湘都市报全媒体记者 仝若楠 继“干噎酸奶”火爆全网后,“水果夹酸奶”又成为近期又一出圈甜...
2025年零食饮料趋势白皮书-... 今天分享的是:2025年零食饮料趋势白皮书-Flywheel飞未 报告共计:90页 《2025年零食...
恒顺健康新品闪耀大阪世博 非遗... 扬子晚报网6月2日讯(通讯员 杨永忠 王娜 记者 万凌云) 端午节前,2025年日本大阪世博会中国馆...
中国十大硬菜 要说中国菜里那些镇得住场子的"硬角色",可不是随便什么菜都能上榜的。这些硬菜要么得有排面,要么得有功...
苏州柏悦酒店五周年庆典:四城名... 为庆祝苏州柏悦酒店开业五周年,一场以“吾载岁悦”为主题的美食美酒晚宴于5月29日璀璨开幕。晚宴特邀知...
潮声丨旅居的魅力,哪里最知道? 潮新闻客户端 执笔 陶韬 去“有风的地方”吹散疲惫,去“有水的村寨”肆意欢笑,到“有篝火的村庄”围炉...
魅力潮汕五日游攻略:探索潮汕旅... 潮汕五日,邂逅山海人文之美 在祖国大陆的南端,有一片神奇而迷人的土地——潮汕。这里,湛蓝的海水与金...
端午假期,阳江这里热!热!热! 今年端午假期恰逢儿童节 传统文化与童趣时光的奇妙邂逅 为海陵岛旅游市场注入全新活力 随着“传统文化+...
游客拍到九寨沟6月飘雪,导游:... 极目新闻记者 谢茂 6月2日,多位前往四川九寨沟旅游的游客发视频称,前往景区途中偶遇下雪,景色绝美。...
旅居云南·AI了爱了丨云南小菌... 云南小菌主旅居云南推荐官我是云南的 “小菌主”,妥妥的一枚山野小精灵!说到我的家乡云南,那可是拥有超...
贵州大礼包叠加升级! 5月30日,记者从省政府新闻办新闻发布会获悉,今年贵州为让更多游客与旅游企业享受优惠,开展全年景区门...
甘南,你为什么把「诗和远方」藏... 甘南,你为什么把「诗和远方」藏得这么深?附 6 个治愈到哭的小众角落!在青藏高原的东缘,有一片宛如世...