我目前正在试验 rkt 容器的 ACI 构造。在我的实验中,我构建了一些容器,特别是用作依赖项。我现在想将这些 .aci 图像用作其他图像的依赖项。由于这些文件是按名称获取的(例如“quay.io/alpine-sh”),我想知道是否有办法引用实际的本地 .aci 文件。
有没有办法从本地文件系统导入这些 .aci 文件,还是我必须设置一个本地网络服务器作为存储库?
我目前正在试验 rkt 容器的 ACI 构造。在我的实验中,我构建了一些容器,特别是用作依赖项。我现在想将这些 .aci 图像用作其他图像的依赖项。由于这些文件是按名称获取的(例如“quay.io/alpine-sh”),我想知道是否有办法引用实际的本地 .aci 文件。
有没有办法从本地文件系统导入这些 .aci 文件,还是我必须设置一个本地网络服务器作为存储库?
acbulid 中的依赖项(至少在 0.3 版之前)只能定义为 http-links,因此您需要通过 http 使您的 aci 可用以将其用作 acbuild 中的依赖项。发布您的 aci 以使其通过 http 可用并不难。图像存档实际上可以托管在 github 或 bitbucket 上。
最新版本的 acbuild 似乎支持它,因为相关问题(跨 acbuild 调用 #144 的缓存依赖关系)已关闭。
缓存的 ACI 存储在目录depstore-tar
和. 如果我们以某种方式在 之间保存这些目录的内容,则不会一遍又一遍地下载 acis。depstore-expanded
$CONTEXT_ROOT/.acbuild
acbuild init
当我玩 acbuild 时,我非常恼火,以至于 acbulid 重新下载每个构建的依赖项。我编写了脚本https://bitbucket.org/legeyda/anyorigin/src/tip/acbuild-plus
,将内部的符号链接配置$CONTEXT_ROOT/.acbuild
为指向内部的持久性目录/var/lib/acbuild/hack
。用法很简单:
acbuild begin
acbuild-plus init target
之后,所有依赖项将由 acbuild 缓存。
您还可以手动安装 aci-file 以供 acbuild 使用。这很简单
acbulid-plus install <your-image.aci>
我已经使用 acbuild v0.3.0 测试了脚本。acbuld-plus
您可以在存储库旁边的 Makefile 中获得使用它的示例。