oras的日常使用

Posted by 梁远鹏 on 2023-04-26 | 阅读 |,阅读约 2 分钟

TOC

这篇在讲什么

主要是记录我使用 oras 的一些使用场景。

由于已知 oras 是一个将任意内容存储为容器镜像的工具,因此不过多介绍 oras。

都有什么场景

存储工作区间

经常会有一些工作区间的文件需要存储,不想用 git,目前使用 oras 将这些文件存放到容器镜像内。

对我来说所谓的工作区间是,我做一些实验时经常会临时搭建一些环境,可能是虚拟机 也可能是容器内套个环境,比如 ubuntu 容器。

而开始实验需要用到这些工作区间的文件,只需要一个 oras 命令,并且将不同的东西存放到不同的容器镜像内就可以轻松的获取需要的那部分内容。

CICD 中的编译产物缓存

使用 drone 时,搭配 oras 使用将编译的产物缓存到容器镜像内,在下一次 CI 到来时从容器镜像内恢复编译产物,达到加快 CI 速度的效果。

目前在我的 github 私有项目中同样使用了 oras 将编译产物缓存到容器镜像内.

由于 gitea 目前(v1.22.0)还不支持 OCI 容器镜像,因此我还使用Jib 将 maven 缓存存储到普通的容器镜像内,在 oras 出现之前我就是这么干的,直到现在.

将常用的二进制命令放到容器镜像仓库

使用 oras 将常用到的二进制命令打包成容器镜像存放到容器镜像仓库,需要使用时直接使用 oras 下载命令,不再需要去各个项目的 github 仓库找到对应的 release 链接来下载。

例如:

oras pull ghcr.io/liangyuanpeng/files:cosign 直接下载 cosign 命令。 oras pull ghcr.io/liangyuanpeng/files:shp 直接下载 shp 命令。

当然,对外使用的话由于缺少版本信息不太方便,但是我个人使用已经足够了,如果我需要更新的二进制文件版本,则使用 oras push ghcr.io/liangyuanpeng/files:cosign cosign 去更新一次就可以了。

行业内的使用情况

微信公众号

扫描下面的二维码关注我们的微信公众号,第一时间查看最新内容。同时也可以关注我的Github,看看我都在了解什么技术,在页面底部可以找到我的Github。

wechat-qrcode