summaryrefslogtreecommitdiff
path: root/libpod/image/image.go
diff options
context:
space:
mode:
Diffstat (limited to 'libpod/image/image.go')
-rw-r--r--libpod/image/image.go17
1 files changed, 13 insertions, 4 deletions
diff --git a/libpod/image/image.go b/libpod/image/image.go
index 3863338b5..7ea851f5d 100644
--- a/libpod/image/image.go
+++ b/libpod/image/image.go
@@ -457,12 +457,11 @@ func getImageDigest(ctx context.Context, src types.ImageReference, sc *types.Sys
return "@" + digest.Hex(), nil
}
-// TagImage adds a tag to the given image
-func (i *Image) TagImage(tag string) error {
- i.reloadImage()
+// normalizeTag returns the canonical version of tag for use in Image.Names()
+func normalizeTag(tag string) (string, error) {
decomposedTag, err := decompose(tag)
if err != nil {
- return err
+ return "", err
}
// If the input does not have a tag, we need to add one (latest)
if !decomposedTag.isTagged {
@@ -472,6 +471,16 @@ func (i *Image) TagImage(tag string) error {
if !decomposedTag.hasRegistry {
tag = fmt.Sprintf("%s/%s", DefaultLocalRepo, tag)
}
+ return tag, nil
+}
+
+// TagImage adds a tag to the given image
+func (i *Image) TagImage(tag string) error {
+ i.reloadImage()
+ tag, err := normalizeTag(tag)
+ if err != nil {
+ return err
+ }
tags := i.Names()
if util.StringInSlice(tag, tags) {
return nil