2

我目前正在试验 rkt 容器的 ACI 构造。在我的实验中,我构建了一些容器,特别是用作依赖项。我现在想将这些 .aci 图像用作其他图像的依赖项。由于这些文件是按名称获取的(例如“quay.io/alpine-sh”),我想知道是否有办法引用实际的本地 .aci 文件。

有没有办法从本地文件系统导入这些 .aci 文件,还是我必须设置一个本地网络服务器作为存储库?

4

1 回答 1

3

acbulid 中的依赖项(至少在 0.3 版之前)只能定义为 http-links,因此您需要通过 http 使您的 aci 可用以将其用作 acbuild 中的依赖项。发布您的 aci 以使其通过 http 可用并不难。图像存档实际上可以托管在 github 或 bitbucket 上。

最新版本的 acbuild 似乎支持它,因为相关问题(跨 acbuild 调用 #144 的缓存依赖关系)已关闭。

缓存的 ACI 存储在目录depstore-tar和. 如果我们以某种方式在 之间保存这些目录的内容,则不会一遍又一遍地下载 acis。depstore-expanded$CONTEXT_ROOT/.acbuildacbuild 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 中获得使用它的示例。

于 2016-10-05T13:46:41.787 回答