diff --git a/client/image_tag.go b/client/image_tag.go index 35abe332b..8924f71eb 100644 --- a/client/image_tag.go +++ b/client/image_tag.go @@ -10,7 +10,7 @@ import ( // ImageTag tags an image in the docker host func (cli *Client) ImageTag(ctx context.Context, source, target string) error { - if _, err := reference.ParseNormalizedNamed(source); err != nil { + if _, err := reference.ParseAnyReference(source); err != nil { return errors.Wrapf(err, "Error parsing reference: %q is not a valid repository/tag", source) } diff --git a/client/image_tag_test.go b/client/image_tag_test.go index 52c5e873a..f7a0ee331 100644 --- a/client/image_tag_test.go +++ b/client/image_tag_test.go @@ -46,6 +46,17 @@ func TestImageTagInvalidSourceImageName(t *testing.T) { } } +func TestImageTagHexSource(t *testing.T) { + client := &Client{ + client: newMockClient(errorMock(http.StatusOK, "OK")), + } + + err := client.ImageTag(context.Background(), "0d409d33b27e47423b049f7f863faa08655a8c901749c2b25b93ca67d01a470d", "repo:tag") + if err != nil { + t.Fatalf("got error: %v", err) + } +} + func TestImageTag(t *testing.T) { expectedURL := "/images/image_id/tag" tagCases := []struct {