当前位置:首页 > 技术 >

gitlab使用入门(零基础gitlab使用教程)

来源:原点资讯(www.yd166.com)时间:2022-12-12 15:31:46作者:YD166手机阅读>>

用过 GitLab 的同学肯定也对 gitlab CI/CD 不陌生,GitLab CI/CD 是一个内置在 GitLab 中的工具,它可以帮助我们在每次代码推送时运行一系列脚本来构建、测试和验证代码的更改以及部署。

Rainbond 本身默认集成了 CI/CD 的整套流程,用户只需提供源代码,后续构建、运行完全交给 Rainbond 处理,整个过程是由 Rainbond 定义的,无需用户干预。这样有利也有弊,利就是简化用户的操作和无需学习 CI/CD 相关知识;弊是用户无法在 CI/CD 过程中自定义,比如想集成代码检测或运行个脚本,这在 Rainbond 的源码构建流程中是不可自定义的。

本文给大家讲述如何使用 GitLab CI/CD 构建、测试、部署 Spring Boot 应用,将产物运行在 Rainbond 上。

GitLab CI 介绍

使用 GitLab CI 需要在仓库根目录下创建 .gitlab-ci.yml 文件。在这个文件中,你可以定义需要运行的编译、测试、部署脚本。

在添加了 .gitlab-ci.yml 文件后,当推送代码时,GitLab Runner 自动执行你定义的 Pipeline,并在 GitLab CI 页面上展示 CI 过程以及结果。

GitLab CI 的基本流程如下:

  1. 开发人员推送代码
  2. 触发 GitLab CI 启动
  3. runner 执行预定义脚本

gitlab使用入门,零基础gitlab使用教程(1)

GitLab CI/CD 快速开始部署 GitLab 和 Runner

通过开源应用商店一键部署 GitLab 和 Runner ,新增 -> 基于应用商店创建组件 -> 在开源应用商店中搜索 GitLab 依次安装 GitLab 和 Runner 到指定应用中。

gitlab使用入门,零基础gitlab使用教程(2)

在 Rainbond 上配置 Runner

在 Rainbond v5.8 版本之前,Rainbond 对 Runner 类型的组件支持的并不是很好。因为 Runner 若以容器的形式去运行的话,本身它需要去挂载宿主机的docker.sock 文件,使它可以调度宿主机的 Docker 环境,创建容器执行任务。在 Rainbond v5.8 版本中,支持修改组件的 YAML,就可以自定义 Volumes 并挂载本地的 docker.sock。

在通过应用商店安装了 Runner 之后,可以在 Runner 组件内 -> 其他设置中看到 Kubernetes 属性,Rainbond 的应用模型已兼容了 Kubernetes 属性。

「注册 Runner 到 GitLab :」

  1. 进入编排模式,将 runner 连接到 GitLab 并更新 runner 组件。(如提示 GitLab 未开启对内端口,则选择 80 端口)
  2. 首先访问 GitLab,Menu -> Admin -> Overview -> Runners -> Register an instance runner -> 复制 Registration token。
  3. 进入 runner 组件内,点击右上角 web 终端进入,执行以下命令进行注册,<token> 换成上一步复制的 Registration token。

gitlab-runner register \ --non-interactive \ --executor "docker" \ --docker-image alpine:latest \ --url "http://127.0.0.1" \ --registration-token "NxNuoRXuzYy3GnFbkhtK" \ --description "docker-runner" \ --tag-list "newdocker" \ --run-untagged="true" \ --locked="false" \ --docker-volumes /var/run/docker.sock:/var/run/docker.sock \ --docker-privileged="true" \ --access-level="not_protected"

「参数说明」

Parameter Value Describe --executor docker 执行器类型为docker。 --url http://127.0.0.1 GitLab addr --registration-token GitLab token --tag-list newdocker 定义runner的标签/名字 --locked false runner为启用状态 --run-untagged true 运行没有指定标签的Job --docker-volumes file_path 挂载文件到runner中 --docker-privileged true runner运行模式:特权模式

  1. 注册完成后就可以在 GitLab 页面中看到 online 的 runner

gitlab使用入门,零基础gitlab使用教程(3)

GitLab CI/CD To Rainbond

gitlab使用入门,零基础gitlab使用教程(4)

整个流程可以分为:

  1. 开发人员提交代码到GitLab仓库。
  2. 触发GitLab 流水线创建,Runner 执行 .gitlab-ci.yml 定义的 stages。
  3. 将制作好的镜像推送到已有的镜像仓库,供后续的Deploy流程使用。
  4. 通过Rainbond自定义API的方法,触发平台组件的自动构建,进入Deploy阶段。
实践步骤

「前提:」

  • 已有 Rainbond 环境
  • 准备镜像仓库,本文使用的DockerHub
  • 本文所使用到代码项目为 Java-Maven-Demo

「1.在Rainbond上有已经基于镜像部署好的组件」

「2.将示例代码导入到 GitLab中。」

「3.编写 .gitlab-ci.yml 文件:」

在项目根目录下创建 .gitlab-ci.yml 内容如下:

# 定义 job 的执行顺序 stages: - test - package - push # 定义基础镜像 image: maven:3.6.3-jdk-8 job-test: stage: test tags: - newdocker script: - echo "===============开始执行代码测试任务===============" - mvn test job-package: stage: package tags: - newdocker script: - echo "===============开始执行打包任务===============" - ls - mvn clean package - cp Dockerfile target/Dockerfile cache: key: devops paths: - target/ job-push: stage: push image: docker:dind cache: key: devops paths: - target/ tags: - newdocker script: - docker login -u ${DOCKER_USERNAME} -p ${DOCKER_PASSWORD} - docker build -t ${IMAGE_DOMAIN}/java-maven:latest . - docker push ${IMAGE_DOMAIN}/java-maven:latest after_script: - curl -d '{"secret_key":"${RAINBOND_SECRET}"}' -H "Content-type:application/json" -X POST http://${RAINBOND_IP}:7070/console/custom/deploy/3321861bcadf0789af71898f23e8e740

after_script 是在推送镜像完成后执行,通过 Rainbond API 构建组件,Rainbond 会获取最新镜像构建运行。<RAINBOND_SECRET> 可在组件 -> 构建源 -> 自动构建中看到。详情可参阅文档 配置组件自动构建部署

「4.提交代码测试自动构建」

修改代码并提交,提交后可在项目的 CI/CD -> Jobs 可以看到正在执行的以及执行完成的任务详情。

gitlab使用入门,零基础gitlab使用教程(5)

「5.查看 Rainbond 组件构建」

可以在组件的操作记录中看到自动构建信息。

gitlab使用入门,零基础gitlab使用教程(6)

写在最后

GitLab CI 扩展性很好,可以集成很多第三方工具,结合 Rainbond 作为 CD,将产物运行到 Rainbond 上,即可形成适用于自身代码项目的 Pipeline。

Rainbond 会在未来的 v5.9.x 版本中实现 Pipeline,对 Rainbond 实现 Pipeline 有想法的同学可以在 issue 上提出 Proposal https://github.com/goodrain/rainbond/issues

栏目热文

极狐gitlab待遇(极狐gitlab 员工福利)

极狐gitlab待遇(极狐gitlab 员工福利)

创业邦从媒体获悉,近日,极狐GitLab(以下简称“极狐公司”)宣布完成 A3 轮融资。本轮融资方为天堂硅谷,融资金额达...

2022-12-12 15:28:59查看全文 >>

gitlab用来干嘛的(gitlab系统好吗)

gitlab用来干嘛的(gitlab系统好吗)

36氪获悉,极狐(Gitlab)于今日正式宣布完成数亿元级别的A轮融资。本轮融资分两阶段进行,第一阶段由淡马锡领投,Al...

2022-12-12 15:13:41查看全文 >>

极狐gitlab工作靠谱吗(极狐gitlab 员工福利)

极狐gitlab工作靠谱吗(极狐gitlab 员工福利)

极狐公司创始人兼CEO 陈冉一年前,2021年3月,曾经帮助Evernote落地为印象笔记的红杉宽带宣布,将GitLab...

2022-12-12 15:52:23查看全文 >>

github gitlab 区别(github 新手详细教程)

github gitlab 区别(github 新手详细教程)

SVNSVN是Subversion的简称,是一个开放源代码的版本控制系统,是集中式管理的版本控制器,相较于RCS、cvs...

2022-12-12 15:25:56查看全文 >>

gitlab 为什么受大厂欢迎(gitlab缺点)

gitlab 为什么受大厂欢迎(gitlab缺点)

本文主要梳理了研发效能领域完整的方向图谱以及主流工具,其中对少部分工具也做了一些点评。看了之后,大家可以对研发效能这个领...

2022-12-12 15:37:08查看全文 >>

怎么看github是不是免费的(怎么进入github网站)

怎么看github是不是免费的(怎么进入github网站)

GitHub 作为全球最大的代码托管服务,可以说是很多程序员的大型游乐场。当然,GitHub 上也有不少优质的开源应用以...

2022-12-12 15:17:10查看全文 >>

gitlab哪个平台好(gitlab可以免费开源吗)

gitlab哪个平台好(gitlab可以免费开源吗)

10月14日代码共享平台GitLab(股票代码“GTLB”) 登陆纳斯达克。GitLab创立于2014年,总部位于美国加...

2022-12-12 15:25:35查看全文 >>

gitlab设置中文(gitlab怎样设置为中文)

gitlab设置中文(gitlab怎样设置为中文)

GitLab-使用入门1 导读本教程主要讲解了gitlab在项目的环境搭建和基本的使用,可以帮助大家在企业中能够自主搭建...

2022-12-12 15:34:10查看全文 >>

gitlab是如何工作的(gitlab怎么在公司使用)

gitlab是如何工作的(gitlab怎么在公司使用)

一、gitlab1、简介GitLab是利用Ruby on Rails一个开源的版本管理系统,实现一个自托管的Git项目仓...

2022-12-12 15:28:29查看全文 >>

gitlab是什么表(gitlab简介和使用)

gitlab是什么表(gitlab简介和使用)

前天,按GitLab一贯的发版规律,Gitlab官方发布了又一个里程碑大版本GitLab 14.0 。在GitLab 1...

2022-12-12 15:25:21查看全文 >>

文档排行