流水线插件 是基于 Rainbond 插件体系 扩大实现,通过插件化的形式,能够实现对 Rainbond 构建体系的扩大。该插件由社区合作伙伴 拓维信息 参加开发并奉献,底层是基于 GitLab CI/CD 实现。
流水线构建与 Rainbond 源码构建的区别是:
- Rainbond 源码构建:应用简略,固定的构建模式,用户只需提供源代码,但不是很灵便。
- 流水线构建:自定义构建步骤,应用更加灵便。
本文将介绍应用流水线插件部署 RuoYi SpringBoot 我的项目,并实现提交代码后主动构建、主动部署。
装置 GitLab 和 Runner
流水线插件是基于 GitLab 实现,所以须要依赖 GitLab 和 GitLab Runner,如果已有则可跳过此步。
通过 Rainbond 开源利用商店部署 GitLab 和 Runner,进入到 平台治理 -> 利用市场 -> 开源利用商店 中别离搜寻 GitLab
和 GitLab-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 终端,执行以下命令进行注册:
<URL>
为 GitLab 拜访地址<TOKEN>
在 GitLab 的Admin -> Runners
获取Registration token
<TAG>
自定义 Runner 的标签。
gitlab-runner register \
--non-interactive \
--executor "docker" \
--docker-image alpine:latest \
--url "<URL>" \
--registration-token "<TOKEN>" \
--description "docker-runner" \
--tag-list "<TAG>" \
--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
页面中看到如下图,Status
为 online
则失常。
装置流水线插件
通过 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: pipeline
name: pipeline
spec:
access_urls:
- https://custom.com
alias: Pipeline
author: Talkweb
description: 该利用插件是基于 GitLab CI/CD 实现,扩大 Rainbond 已有的构建体系。icon: https://static.goodrain.com/icon/pipeline.png
version: 1.0.0
批改实现后,就能够在每个团队视图中看到 流水线
按钮选项了。
部署 RuoYi 我的项目
将 Gitee 中的 RuoYi 我的项目 Fork 到公有的 GitLab 中。
批改我的项目配置文件中的 mysql
连贯地址:
# ruoyi-admin/src/main/resources/application-druid.yml
......
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver
druid:
# 主库数据源
master:
url: jdbc:mysql://${MYSQL_HOST}:3306/ry?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: root
部署 MySQL
通过 Rainbond 开源利用商店部署 MySQL 即可。部署之后关上 MySQL 对外服务端口,通过本地工具连贯到数据库并创立 ry
数据库和初始化 sql 目录下的 quartz.sql
和 ry_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。
配置主动构建和主动部署
编辑曾经创立的应用服务,关上主动构建和主动部署按钮,下次提交代码时将会主动触发整个流程。
最初
通过流水线插件能够更灵便的扩大构建过程,比方减少代码扫描、构建胜利后的音讯告诉等等。流水线插件也会继续迭代,欢送大家装置应用!