Browse Source

builder: fix pruning all cache

Signed-off-by: Tibor Vass <tibor@docker.com>
Tibor Vass 6 years ago
parent
commit
d47435a004

+ 9 - 0
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
 }
 

+ 2 - 0
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