summaryrefslogtreecommitdiff
path: root/builder/builder-next/exporter/export.go
diff options
context:
space:
mode:
Diffstat (limited to 'builder/builder-next/exporter/export.go')
-rw-r--r--builder/builder-next/exporter/export.go16
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)