我可以 "rehydrate" docker 从远程容器存储库构建缓存吗?

Can I "rehydrate" a docker build cache from a remote container repository?

TL;DR

我正在使用 docker build 构建一个 ASP.NET 应用程序;当我 运行 在本地计算机上构建时,它会快速执行,因为我正在使用 Build cache.

Step 1/10 : FROM microsoft/aspnetcore-build:2.0.0 as identity-build
 ---> c5549d4c5716
Step 2/10 : ENV DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true
 ---> Using cache
 ---> 060911817d8c
Step 3/10 : WORKDIR /publish
 ---> Using cache
 ---> 851e87c05c42

我正在尝试在 AppVeyor CI 上做同样的事情,但是因为 AppVeyor 为我的每个构建提供了一个干净的 VM 映像,所以没有缓存。

我尝试过从私有容器存储库中拉取构建映像,但这似乎没有成功 "rehydrate the image cache",因此没有缓存命中。

背景

我创建了一个 example GitHub repo, and an associated build in AppVeyor 我正在试验。

我已尝试从私有容器存储库恢复构建映像,但这并未导致任何缓存命中。

我试图通过使用 docker 构建缓存来实现两个目标。

  1. 构建速度更快。
  2. 确定代码是否已更改,并以此来决定是否需要部署。

首先,我只是想让构建缓存重新水化,然后从那里继续试验。

似乎是睡个好觉加上尝试撰写这个问题的行为对我的 Google-fu 有所帮助,因为我现在找到了答案:-)

docker build 可以通过 --cache-from 参数指示使用图像作为其缓存。

例如(取自here

docker pull myimage:v1.0
docker build --cache-from myimage:v1.0 -t myimage:v1.1 .