|
@@ -7,10 +7,10 @@ import (
|
|
"strconv"
|
|
"strconv"
|
|
"strings"
|
|
"strings"
|
|
|
|
|
|
|
|
+ "github.com/docker/distribution/reference"
|
|
distref "github.com/docker/distribution/reference"
|
|
distref "github.com/docker/distribution/reference"
|
|
"github.com/docker/docker/image"
|
|
"github.com/docker/docker/image"
|
|
"github.com/docker/docker/layer"
|
|
"github.com/docker/docker/layer"
|
|
- "github.com/docker/docker/reference"
|
|
|
|
"github.com/moby/buildkit/exporter"
|
|
"github.com/moby/buildkit/exporter"
|
|
"github.com/moby/buildkit/exporter/containerimage/exptypes"
|
|
"github.com/moby/buildkit/exporter/containerimage/exptypes"
|
|
"github.com/moby/buildkit/util/compression"
|
|
"github.com/moby/buildkit/util/compression"
|
|
@@ -29,11 +29,15 @@ type Differ interface {
|
|
EnsureLayer(ctx context.Context, key string) ([]layer.DiffID, error)
|
|
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
|
|
// Opt defines a struct for creating new exporter
|
|
type Opt struct {
|
|
type Opt struct {
|
|
- ImageStore image.Store
|
|
|
|
- ReferenceStore reference.Store
|
|
|
|
- Differ Differ
|
|
|
|
|
|
+ ImageStore image.Store
|
|
|
|
+ Differ Differ
|
|
|
|
+ ImageTagger ImageTagger
|
|
}
|
|
}
|
|
|
|
|
|
type imageExporter struct {
|
|
type imageExporter struct {
|
|
@@ -206,10 +210,10 @@ func (e *imageExporterInstance) Export(ctx context.Context, inp exporter.Source,
|
|
}
|
|
}
|
|
_ = configDone(nil)
|
|
_ = configDone(nil)
|
|
|
|
|
|
- if e.opt.ReferenceStore != nil {
|
|
|
|
|
|
+ if e.opt.ImageTagger != nil {
|
|
for _, targetName := range e.targetNames {
|
|
for _, targetName := range e.targetNames {
|
|
tagDone := oneOffProgress(ctx, "naming to "+targetName.String())
|
|
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)
|
|
return nil, tagDone(err)
|
|
}
|
|
}
|
|
_ = tagDone(nil)
|
|
_ = tagDone(nil)
|