代码之家  ›  专栏  ›  技术社区  ›  James Skimming

我可以从远程容器存储库“重新水化”docker build缓存吗?

  •  5
  • James Skimming  · 技术社区  · 6 年前

    TL;博士

    我正在构建一个ASP。NET应用程序使用 docker build ;当我在本地计算机上运行构建时,它会快速执行,因为我正在使用 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映像,因此没有缓存。

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

    出身背景

    我创建了一个 example GitHub repo ,以及关联的 build in AppVeyor 我正在用它做实验。

    我尝试从专用容器存储库还原构建映像,但这并没有导致任何缓存命中。

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

    1. 更快的构建。
    2. 确定代码是否已更改,并使用此选项确定是否需要部署。

    首先,我只是想让构建缓存重新水化,然后继续进行实验。

    1 回复  |  直到 6 年前
        1
  •  10
  •   James Skimming    6 年前

    看来,晚上睡个好觉,再加上试图写下这个问题,对我的 Google-fu ,现在我找到了答案:-)

    docker build 可以指示将图像用于其缓存 --cache-from 参数

    例如(摘自 here )

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