GitLab CI/CD 作业缓存如何使用 RustFS?
GitLab CI/CD 作业缓存(cache)是加速 CI/CD 流水线(Pipeline)执行的重要手段,缓存可以配置使用远端对象存储。本文分享如何将新一代高性能分布式存储系统配置为 GitLab CI/CD 作业的缓存存储对象。
关于 RustFS
RustFS 是国内研发团队开源的一款兼容 S3 的分布式存储系统,用 Rust 编写,经过实测,性能优于 MinIO,能够平替 MinIO。RustFS 支持二进制、Docker 的安装方式。本文直接使用 RustFS 官方文档中二进制的安装方式进行了安装。直接执行如下命令:
curl -O https://rustfs.com/install_rustfs.sh && bash install_rustfs.sh
执行成功后可以用默认用户名和密码(均为 rustfsadmin)通过 localhost:9000 进行登录:

GitLab 安装
本文直接安装了 GitLab JH 版本,在官网下载安装页面根据对应的 OS 进行安装即可,然后用默认用户名和密码登录即可:

在 GitLab 中配置 RustFS
在 RustFS 上创建 Bucket
在 RustFS 控制台首页,点击创建存储桶,输入存储桶名称即可创建成功:

在 Runner 中配置 RustFS
在 Runner 的配置文件中,添加如下内容:
[runners.cache]
MaxUploadedArchiveSize = 0
Type = "s3"
Path = "rustfs"
Shared = false
[runners.cache.s3]
ServerAddress = "12.34.56.78:9000"
AccessKey = "RUSTFS_AccessKey"
SecretKey = "RUSTFS_SecretKey"
BucketName = "job-cache"
BucketLocation = "cn-east-1"
Insecure = true
然后,创建几个 CI/CD 作业,作业内容如下:
test-job:
stage: build
tags:
- rustfs
cache:
- key:
files:
- 3.txt
paths:
- rustfs/
- key:
files:
- 4.txt
paths:
- rustfs/
script:
- cat rustfs/3.txt
- cat rustfs/4.txt
触发流水线,可以看到对应的日志:

在 RustFS 上查看配置的 Bucket job-cache 中是否有数据:

可以看到有数据产生。证明 GitLab 使用了配置的 RustFS bucket。
GitLab CI/CD 作业缓存如何使用 RustFS?的更多相关文章
- GitLab CI/CD的官译【原】
CI / CD方法简介 软件开发的持续集成基于自动执行脚本,以最大限度地减少在开发应用程序时引入错误的可能性.从新代码的开发到部署,它们需要较少的人为干预甚至根本不需要干预. 它涉及在每次小迭代中不断 ...
- 官网GitLab CI/CD英文文档翻译
在查阅GitLab官网的CI/CD功能说明时,全是英文看起来不方便,通过翻译软件自动翻译后"内容失真",看起来很变扭.查阅了百度上的资料发现很多翻译很老旧,有些甚至是挂羊头卖狗肉. ...
- GitLab CI/CD 自动化部署入门
前言:因为找了B站内推,测试开发,正好知道内部使用GitLab做自动化测试,所以简单学了一下,有错误的地方请指正. 入门 初始化 cp: 无法获取'/root/node-v12.9.0-linux-x ...
- 使用 Gitlab CI/CD 实现自动化发布站点到 IIS
说明 这里先介绍下两个东西 CI/CD.GitLab Runner,当然在此之前你需要对 git 有所了解,关于 git 这里不做说明,可以自行百度. 首先介绍 CI/CD :随着我们开发方式的转变, ...
- 前端初探 Gitlab CI/CD
前言 纵观人类历史的发展以及三次工业革命,你会发现利用机器来替代部分人力劳动,将重复的工作自动化从而解放生产力都是发展的必然趋势,在软件工程领域也不例外,其中 CI/CD 就是其中一项,那么什么是 C ...
- Gitlab CI/CD
Gitlab CI/CD 前言 纵观人类历史的发展以及三次工业革命,你会发现利用机器来替代部分人力劳动,将重复的工作自动化从而解放生产力都是发展的必然趋势,在软件工程领域也不例外,其中 CI/CD 就 ...
- [转]GitLab Continuous Integration (GitLab CI/CD)
本文转自:https://docs.gitlab.com/ee/ci/README.html GitLab Continuous Integration (GitLab CI/CD) The bene ...
- .Net Core自动化部署系列(三):使用GitLab CI/CD 自动部署Api到Docker
之前写过使用Jenkins实现自动化部署,最近正好没事研究了下GitLab的自动化部署,顺便记录一下. 使用GitLab部署我们需要准备两件事,第一个起码你得有个GitLab,自己搭建或者使用官方的都 ...
- GitLab CI/CD持续集成设置
GitLab CI/CD持续设置 官方文档地址(https://docs.gitlab.com/ee/ci/README.html) GitLab CI.CD功能非常完善,只需要简单几步,就可以完成项 ...
- .NetCore 配合 Gitlab CI&CD 实践 - 开篇
引言 这是一个系列的文章,讲述的是一个中小型开发团队如何从零开始使用搭建基建 GitLab 代码托管平台,以及使用 GitLab Runner 实现 CI/CD 的故事.本系列通过部署一个完整的 .n ...
随机推荐
- 【公众号搬运】React-Native开发鸿蒙NEXT(6)
.markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...
- 《HelloGitHub》第 110 期
兴趣是最好的老师,HelloGitHub 让你对开源感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣.入门级的开源项目. github.com/521xueweihan/HelloG ...
- Js RSA非对称加密
// RSA 加密 async function encryptData(publicKeyStr, data) { const publicKey = await importPublicKey(p ...
- 洛谷 P3945 三体问题
洛谷 P3945 三体问题 在物竞dalao的帮助下(简化下?)终于A了此题,于是在他的提议下来喷出题人. 接下来看题. 题意分析 模拟三维空间中\(n\)个星体的运动,求\(Ts\)后\(n\)个星 ...
- Java IO<5>管道流PipedOutputStream PipedInputStream
在java中,PipedOutputStream和PipedInputStream分别是管道输出流和管道输入流.它们的作用是让多线程可以通过管道进行线程间的通讯.在使用管道通信时,必须将PipedOu ...
- UniApp前端+Java后端技术栈 解析微信支付功能的设计实现与关键实践
感觉本篇对你有帮助可以关注一下我的微信公众号(深入浅出谈java) 会不定期更新知识!!! 一.概述 在移动互联网时代,支付功能已成为应用开发的核心能力之一.本文将以 UniApp前端+Java后端技 ...
- 你应该懂的AI大模型(一) 之 浅知大模型
1.AI 大模型的训练过程 AI 大模型的训练就如同让一名孩童从不会说话一步步培养成高级知识分子或者专家的过程. 第一步:收集数据,将海量的知识与文章收集起来作为学习资料教给这个孩子: 第二步:预处理 ...
- 激活数据价值,探究DataOps下的数据架构及其实践丨DTVision开发治理篇
据中国信通院发布,2012年到2021年10年间,我国数字经济规模由12万亿元增长到45.5万亿元,在整个GDP中的比重由21.6%提升至39.8%.顺应时代发展新趋势,"数据"成 ...
- stm32主要用来做什么?
STM32主要用来做什么?一个从机械转行的十年老兵血泪经验 写在前面:一个改变命运的小芯片 说起STM32,我真的是百感交集. 十年前,我还是个刚从某211大学机械专业毕业的愣头青,对嵌入式.单片机这 ...
- 多Agent协作入门:群组聊天-AgentGroupChat
大家好,我是Edison. 近日抽空学习了下Semantic Kernel提供的AgentGroupChat对象写了一个多Agent群组对话的Demo,总结一下分享与你.当然,多Agent协作还有其他 ...