From 9328f0479b810c76fd5944bf9c856cea1af0c498 Mon Sep 17 00:00:00 2001 From: Tonis Tiigi Date: Tue, 22 May 2018 21:48:20 -0700 Subject: [PATCH] builder: support for images without layers Signed-off-by: Tonis Tiigi --- builder/builder-next/adapters/containerimage/pull.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/builder/builder-next/adapters/containerimage/pull.go b/builder/builder-next/adapters/containerimage/pull.go index 3e6cc75a3c..bdb347e329 100644 --- a/builder/builder-next/adapters/containerimage/pull.go +++ b/builder/builder-next/adapters/containerimage/pull.go @@ -293,6 +293,9 @@ func (p *puller) Snapshot(ctx context.Context) (cache.ImmutableRef, error) { if p.config != nil { img, err := p.is.ImageStore.Get(image.ID(digest.FromBytes(p.config))) if err == nil { + if len(img.RootFS.DiffIDs) == 0 { + return nil, nil + } ref, err := p.is.CacheAccessor.GetFromSnapshotter(ctx, string(img.RootFS.ChainID()), cache.WithDescription(fmt.Sprintf("from local %s", p.ref))) if err != nil { return nil, err @@ -431,6 +434,10 @@ func (p *puller) Snapshot(ctx context.Context) (cache.ImmutableRef, error) { } }() + if len(mfst.Layers) == 0 { + return nil, nil + } + layers := make([]xfer.DownloadDescriptor, 0, len(mfst.Layers)) for i, desc := range mfst.Layers {