Merge pull request #582 from vrothberg/pull-short-names
pull: don't resolve short names on explicit docker:// reference
This commit is contained in:
commit
e66ec81ea0
|
@ -52,6 +52,7 @@ func (r *Runtime) Pull(ctx context.Context, name string, pullPolicy config.PullP
|
||||||
options = &PullOptions{}
|
options = &PullOptions{}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var possiblyUnqualifiedName string // used for short-name resolution
|
||||||
ref, err := alltransports.ParseImageName(name)
|
ref, err := alltransports.ParseImageName(name)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// If the image clearly refers to a local one, we can look it up directly.
|
// If the image clearly refers to a local one, we can look it up directly.
|
||||||
|
@ -83,6 +84,17 @@ func (r *Runtime) Pull(ctx context.Context, name string, pullPolicy config.PullP
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
ref = dockerRef
|
ref = dockerRef
|
||||||
|
possiblyUnqualifiedName = name
|
||||||
|
} else if ref.Transport().Name() == registryTransport.Transport.Name() {
|
||||||
|
// Normalize the input if we're referring to the docker
|
||||||
|
// transport directly. That makes sure that a `docker://fedora`
|
||||||
|
// will resolve directly to `docker.io/library/fedora:latest`
|
||||||
|
// and not be subject to short-name resolution.
|
||||||
|
named := ref.DockerReference()
|
||||||
|
if named == nil {
|
||||||
|
return nil, errors.New("internal error: unexpected nil reference")
|
||||||
|
}
|
||||||
|
possiblyUnqualifiedName = named.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
if options.AllTags && ref.Transport().Name() != registryTransport.Transport.Name() {
|
if options.AllTags && ref.Transport().Name() != registryTransport.Transport.Name() {
|
||||||
|
@ -103,7 +115,7 @@ func (r *Runtime) Pull(ctx context.Context, name string, pullPolicy config.PullP
|
||||||
|
|
||||||
// DOCKER REGISTRY
|
// DOCKER REGISTRY
|
||||||
case registryTransport.Transport.Name():
|
case registryTransport.Transport.Name():
|
||||||
pulledImages, pullError = r.copyFromRegistry(ctx, ref, strings.TrimPrefix(name, "docker://"), pullPolicy, options)
|
pulledImages, pullError = r.copyFromRegistry(ctx, ref, possiblyUnqualifiedName, pullPolicy, options)
|
||||||
|
|
||||||
// DOCKER ARCHIVE
|
// DOCKER ARCHIVE
|
||||||
case dockerArchiveTransport.Transport.Name():
|
case dockerArchiveTransport.Transport.Name():
|
||||||
|
|
Loading…
Reference in New Issue