diff options
Diffstat (limited to 'builder/builder-next/exporter/export.go')
-rw-r--r-- | builder/builder-next/exporter/export.go | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/builder/builder-next/exporter/export.go b/builder/builder-next/exporter/export.go index e138a6f235..408231790c 100644 --- a/builder/builder-next/exporter/export.go +++ b/builder/builder-next/exporter/export.go @@ -7,10 +7,10 @@ import ( "strconv" "strings" + "github.com/docker/distribution/reference" distref "github.com/docker/distribution/reference" "github.com/docker/docker/image" "github.com/docker/docker/layer" - "github.com/docker/docker/reference" "github.com/moby/buildkit/exporter" "github.com/moby/buildkit/exporter/containerimage/exptypes" "github.com/moby/buildkit/util/compression" @@ -29,11 +29,15 @@ type Differ interface { EnsureLayer(ctx context.Context, key string) ([]layer.DiffID, error) } +type ImageTagger interface { + TagImageWithReference(imageID image.ID, newTag reference.Named) error +} + // Opt defines a struct for creating new exporter type Opt struct { - ImageStore image.Store - ReferenceStore reference.Store - Differ Differ + ImageStore image.Store + Differ Differ + ImageTagger ImageTagger } type imageExporter struct { @@ -206,10 +210,10 @@ func (e *imageExporterInstance) Export(ctx context.Context, inp exporter.Source, } _ = configDone(nil) - if e.opt.ReferenceStore != nil { + if e.opt.ImageTagger != nil { for _, targetName := range e.targetNames { tagDone := oneOffProgress(ctx, "naming to "+targetName.String()) - if err := e.opt.ReferenceStore.AddTag(targetName, digest.Digest(id), true); err != nil { + if err := e.opt.ImageTagger.TagImageWithReference(image.ID(digest.Digest(id)), targetName); err != nil { return nil, tagDone(err) } _ = tagDone(nil) |