summaryrefslogtreecommitdiff
path: root/builder
diff options
context:
space:
mode:
authorTonis Tiigi <tonistiigi@gmail.com>2021-05-11 14:19:57 -0700
committerSebastiaan van Stijn <github@gone.nl>2021-05-17 14:58:16 +0200
commit94c1890d3997cad133e50f0899677f4966078951 (patch)
treeefadbab41798186b826745330f1c98a9f49d1289 /builder
parente4b9915803c59f3a761c67dd46c606a4f3e3a98f (diff)
downloaddocker-94c1890d3997cad133e50f0899677f4966078951.tar.gz
builder-next: relax second cache key requirements for schema1
Schema1 images can not have a config based cache key before the layers are pulled. Avoid validation and reuse manifest digest as a second key. Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com> (cherry picked from commit 85167fc63409524fa870bf9bafd7193f08a6d8ed) Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Diffstat (limited to 'builder')
-rw-r--r--builder/builder-next/adapters/containerimage/pull.go4
1 files changed, 2 insertions, 2 deletions
diff --git a/builder/builder-next/adapters/containerimage/pull.go b/builder/builder-next/adapters/containerimage/pull.go
index 8bd9b92c4a..6b791f1064 100644
--- a/builder/builder-next/adapters/containerimage/pull.go
+++ b/builder/builder-next/adapters/containerimage/pull.go
@@ -333,12 +333,12 @@ func (p *puller) CacheKey(ctx context.Context, g session.Group, index int) (stri
return dgst.String(), nil, false, nil
}
- if len(p.config) == 0 {
+ if len(p.config) == 0 && p.desc.MediaType != images.MediaTypeDockerSchema1Manifest {
return "", nil, false, errors.Errorf("invalid empty config file resolved for %s", p.src.Reference.String())
}
k := cacheKeyFromConfig(p.config).String()
- if k == "" {
+ if k == "" || p.desc.MediaType == images.MediaTypeDockerSchema1Manifest {
dgst, err := p.mainManifestKey(p.platform)
if err != nil {
return "", nil, false, err