@@ -25,14 +25,11 @@ func (cli *DockerCli) pullImageCustomOut(image string, out io.Writer) error {
2525 }
2626
2727 var tag string
28- switch x := ref .(type ) {
28+ switch x := reference . WithDefaultTag ( ref ) .(type ) {
2929 case reference.Canonical :
3030 tag = x .Digest ().String ()
3131 case reference.NamedTagged :
3232 tag = x .Tag ()
33- default :
34- // pull only the image tagged 'latest' if no tag was specified
35- tag = reference .DefaultTag
3633 }
3734
3835 // Resolve the Repository name from fqn to RepositoryInfo
@@ -97,24 +94,13 @@ func (cli *DockerCli) createContainer(config *runconfig.Config, hostConfig *runc
9794 if err != nil {
9895 return nil , err
9996 }
100-
101- isCanonical := false
102- switch ref .(type ) {
103- case reference.NamedTagged :
104- case reference.Canonical :
105- isCanonical = true
106- default :
107- ref , err = reference .WithTag (ref , reference .DefaultTag )
108- if err != nil {
109- return nil , err
110- }
111- }
97+ ref = reference .WithDefaultTag (ref )
11298
11399 var trustedRef reference.Canonical
114100
115- if isTrusted () && ! isCanonical {
101+ if ref , ok := ref .(reference. NamedTagged ); ok && isTrusted () {
116102 var err error
117- trustedRef , err = cli .trustedReference (ref .(reference. NamedTagged ) )
103+ trustedRef , err = cli .trustedReference (ref )
118104 if err != nil {
119105 return nil , err
120106 }
@@ -132,8 +118,8 @@ func (cli *DockerCli) createContainer(config *runconfig.Config, hostConfig *runc
132118 if err = cli .pullImageCustomOut (config .Image , cli .err ); err != nil {
133119 return nil , err
134120 }
135- if trustedRef != nil && ! isCanonical {
136- if err := cli .tagTrusted (trustedRef , ref .(reference. NamedTagged ) ); err != nil {
121+ if ref , ok := ref .(reference. NamedTagged ); ok && trustedRef != nil {
122+ if err := cli .tagTrusted (trustedRef , ref ); err != nil {
137123 return nil , err
138124 }
139125 }
0 commit comments