【问题标题】:Can I "rehydrate" a docker build cache from a remote container repository?我可以从远程容器存储库“重新水化” docker build 缓存吗?
【发布时间】:2018-09-25 19:59:03
【问题描述】:

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

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

背景

我创建了一个 example GitHub repo 和一个关联的 build in AppVeyor,我正在试验。

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

我正在尝试通过使用 docker build cache 来实现两个目标。

  1. 构建速度更快。
  2. 确定代码是否已更改并使用它来确定是否需要部署。

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

【问题讨论】:

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


    【解决方案1】:

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

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

    例如(取自here

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

    【讨论】:

      猜你喜欢
      • 2011-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多