Merge pull request #21002 from tonistiigi/fix-id-noprefix

Fix docker run for 64 byte hex ID
This commit is contained in:
David Calavera
2016-03-14 10:17:38 -07:00
5 changed files with 55 additions and 26 deletions

View File

@@ -92,21 +92,22 @@ func (cli *DockerCli) createContainer(config *container.Config, hostConfig *cont
defer containerIDFile.Close()
}
ref, err := reference.ParseNamed(config.Image)
var trustedRef reference.Canonical
_, ref, err := reference.ParseIDOrReference(config.Image)
if err != nil {
return nil, err
}
ref = reference.WithDefaultTag(ref)
if ref != nil {
ref = reference.WithDefaultTag(ref)
var trustedRef reference.Canonical
if ref, ok := ref.(reference.NamedTagged); ok && isTrusted() {
var err error
trustedRef, err = cli.trustedReference(ref)
if err != nil {
return nil, err
if ref, ok := ref.(reference.NamedTagged); ok && isTrusted() {
var err error
trustedRef, err = cli.trustedReference(ref)
if err != nil {
return nil, err
}
config.Image = trustedRef.String()
}
config.Image = trustedRef.String()
}
//create the container
@@ -114,7 +115,7 @@ func (cli *DockerCli) createContainer(config *container.Config, hostConfig *cont
//if image not found try to pull it
if err != nil {
if client.IsErrImageNotFound(err) {
if client.IsErrImageNotFound(err) && ref != nil {
fmt.Fprintf(cli.err, "Unable to find image '%s' locally\n", ref.String())
// we don't want to write to stdout anything apart from container.ID