...
1 package mutate
2
3 import (
4 v1 "github.com/google/go-containerregistry/pkg/v1"
5 "github.com/google/go-containerregistry/pkg/v1/empty"
6 "github.com/google/go-containerregistry/pkg/v1/mutate"
7 )
8
9
10
11
12
13
14
15
16
17 func ReplaceLayers(img v1.Image, layers ...v1.Layer) (v1.Image, error) {
18 m, err := img.Manifest()
19 if err != nil {
20 return nil, err
21 }
22
23 i, err := mutate.AppendLayers(empty.Image, layers...)
24 if err != nil {
25 return nil, err
26 }
27
28 return mutate.Annotations(
29 mutate.MediaType(i, m.MediaType),
30 m.Annotations,
31 ).(v1.Image), nil
32 }
33
View as plain text