在特拉维斯CIcaching泊坞窗图像

是否有可能在特拉维斯CIcaching泊坞窗图像? 尝试caching/var/lib/docker/aufs/diff文件夹和/var/lib/docker/repositories-aufs docker /var/lib/docker/repositories-aufs文件与travis.yml中的cache.directories似乎不工作,因为它们需要root。

从Docker的angular度来看,我认为你可以做到这一点(没有运行networking本地registry的可能性)的最佳方式是save Docker镜像并caching导出的tar文件。 您需要在开始时load ,而不是pull图像。 这样你就不会搞乱docker存储实现。

 install: - docker pull busybox - docker save busybox | gzip > docker/busybox.tar.gz cache: directories: - docker 

然后,您需要在Travis运行之前loadcaching的图像。

 before_script: - gzip -dc docker/busybox.tar.gz | docker load 

对于Travis来说我不清楚的是,如果你需要在第一次之后停止运行install步骤。 您不希望Travis每次caching时都会提取并导出图像。 我不确定是否有cache指令自动为你做?

那么主要的问题是,这是否真的比拉图片更快。

caching将configuration中列出的所有目录encryption,并使用安全且受保护的URL将其上传到S3,从而确保上传的档案的安全性和隐私性。

请注意,这使得我们的caching不是networking本地的,它仍然绑定到S3的networking带宽和DNSparsing。 这会影响您可以并应该存储在caching中的内容。 如果您在caching中存储大于几百兆的档案,则不太可能会看到速度大大提高。

你可能只是增加开销。 由于Dockerregistry由Cloudfront支持,Travis已经从本地或至lessclosuresAmazon基础架构中提取压缩的映像。 也许可以让他们本地cachingDocker镜像的function,类似于他们对apt封装的function, 尽pipe听起来并不乐观 。

看看circleci的build议: https ://circleci.com/docs/docker/#caching-docker-layers。

docker save / docker load与travis提供的目录caching结合起来应该很容易。