Browse Source

Merge pull request #30848 from nishanttotla/suppress-digest-docker-ps

Suppressing image digest in docker ps
Vincent Demeester 8 years ago
parent
commit
40532143c2
1 changed files with 16 additions and 0 deletions
  1. 16 0
      cli/command/formatter/container.go

+ 16 - 0
cli/command/formatter/container.go

@@ -6,6 +6,7 @@ import (
 	"strings"
 	"strings"
 	"time"
 	"time"
 
 
+	"github.com/docker/distribution/reference"
 	"github.com/docker/docker/api"
 	"github.com/docker/docker/api"
 	"github.com/docker/docker/api/types"
 	"github.com/docker/docker/api/types"
 	"github.com/docker/docker/pkg/stringid"
 	"github.com/docker/docker/pkg/stringid"
@@ -115,7 +116,22 @@ func (c *containerContext) Image() string {
 		if trunc := stringid.TruncateID(c.c.ImageID); trunc == stringid.TruncateID(c.c.Image) {
 		if trunc := stringid.TruncateID(c.c.ImageID); trunc == stringid.TruncateID(c.c.Image) {
 			return trunc
 			return trunc
 		}
 		}
+		// truncate digest if no-trunc option was not selected
+		ref, err := reference.ParseNormalizedNamed(c.c.Image)
+		if err == nil {
+			if nt, ok := ref.(reference.NamedTagged); ok {
+				// case for when a tag is provided
+				if namedTagged, err := reference.WithTag(reference.TrimNamed(nt), nt.Tag()); err == nil {
+					return reference.FamiliarString(namedTagged)
+				}
+			} else {
+				// case for when a tag is not provided
+				named := reference.TrimNamed(ref)
+				return reference.FamiliarString(named)
+			}
+		}
 	}
 	}
+
 	return c.c.Image
 	return c.c.Image
 }
 }