Skip to content

Commit 548c80a

Browse files
authored
Merge pull request #3024 from tonistiigi/imagetools-push-tag-fix
imagetools: avoid multiple tag pushes on create
2 parents f3a4740 + ccdf63c commit 548c80a

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

util/imagetools/create.go

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -194,8 +194,11 @@ func (r *Resolver) Combine(ctx context.Context, srcs []*Source, ann map[exptypes
194194
func (r *Resolver) Push(ctx context.Context, ref reference.Named, desc ocispec.Descriptor, dt []byte) error {
195195
ctx = remotes.WithMediaTypeKeyPrefix(ctx, "application/vnd.in-toto+json", "intoto")
196196

197-
ref = reference.TagNameOnly(ref)
198-
p, err := r.resolver().Pusher(ctx, ref.String())
197+
fullRef, err := reference.WithDigest(reference.TagNameOnly(ref), desc.Digest)
198+
if err != nil {
199+
return errors.Wrapf(err, "failed to combine ref %s with digest %s", ref, desc.Digest)
200+
}
201+
p, err := r.resolver().Pusher(ctx, fullRef.String())
199202
if err != nil {
200203
return err
201204
}
@@ -217,8 +220,8 @@ func (r *Resolver) Push(ctx context.Context, ref reference.Named, desc ocispec.D
217220
func (r *Resolver) Copy(ctx context.Context, src *Source, dest reference.Named) error {
218221
ctx = remotes.WithMediaTypeKeyPrefix(ctx, "application/vnd.in-toto+json", "intoto")
219222

220-
dest = reference.TagNameOnly(dest)
221-
p, err := r.resolver().Pusher(ctx, dest.String())
223+
// push by digest
224+
p, err := r.resolver().Pusher(ctx, dest.Name())
222225
if err != nil {
223226
return err
224227
}

0 commit comments

Comments
 (0)