我可以"补水"来自远程容器存储库的docker构建缓存?

时间:2018-04-16 06:55:37

标签: docker caching asp.net-core appveyor docker-build

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镜像,所以没有缓存。

我尝试过尝试从私有容器存储库中提取构建映像,但这似乎并没有“重新整合映像缓存”,因此,没有缓存命中。< / p>

背景

我已经创建了一个example GitHub repo,以及一个与之相关的build in AppVeyor

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

我尝试使用docker build cache实现两个目标。

  1. 更快的构建。
  2. 确定代码是否已更改,并使用它来决定是否需要部署。
  3. 首先,我只是试图让构建缓存重新水化,然后继续从那里进行试验。

1 个答案:

答案 0 :(得分:5)

似乎晚安的睡眠和尝试撰写这个问题的行为对我的Google-fu有所帮助,因为我现在找到了答案: - )

可以指示

docker build使用--cache-from参数将图像用于其缓存。

例如(取自here

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