diff --git a/builder/builder-next/adapters/containerimage/pull.go b/builder/builder-next/adapters/containerimage/pull.go index e56efd5134..f187f5c16f 100644 --- a/builder/builder-next/adapters/containerimage/pull.go +++ b/builder/builder-next/adapters/containerimage/pull.go @@ -516,6 +516,15 @@ func (p *puller) Snapshot(ctx context.Context) (cache.ImmutableRef, error) { return nil, err } + // TODO: handle windows layers for cross platform builds + + if p.src.RecordType != "" && cache.GetRecordType(ref) == "" { + if err := cache.SetRecordType(ref, p.src.RecordType); err != nil { + ref.Release(context.TODO()) + return nil, err + } + } + return ref, nil } diff --git a/builder/builder-next/controller.go b/builder/builder-next/controller.go index 48e74cb851..1d0ed2d496 100644 --- a/builder/builder-next/controller.go +++ b/builder/builder-next/controller.go @@ -72,6 +72,8 @@ func newController(rt http.RoundTripper, opt Opt) (*control.Controller, error) { cm, err := cache.NewManager(cache.ManagerOpt{ Snapshotter: snapshotter, MetadataStore: md, + // TODO: implement PruneRefChecker to correctly mark cache objects as "Shared" + PruneRefChecker: nil, }) if err != nil { return nil, err