From 5e42d050a7e44af75601b06f9f19b12a07a6809c Mon Sep 17 00:00:00 2001 From: Jameel Al-Aziz Date: Tue, 18 Jun 2024 21:40:37 -0700 Subject: [PATCH] Improve support for third-party registry images Update `ReferenceExpand` to support image references from remote registries. This fixes local image lookup and pulling with newer versions of Docker. fixes #4045 Signed-off-by: Jameel Al-Aziz --- src/cmd/linuxkit/util/reference.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/cmd/linuxkit/util/reference.go b/src/cmd/linuxkit/util/reference.go index 7ed89c349..04139b54a 100644 --- a/src/cmd/linuxkit/util/reference.go +++ b/src/cmd/linuxkit/util/reference.go @@ -32,7 +32,12 @@ func ReferenceExpand(ref string, options ...ReferenceOption) string { case 1: ret = "docker.io/library/" + ref case 2: - ret = "docker.io/" + ref + // If the first part is not a domain, assume it is a DockerHub user/org. + // This logic is copied from moby: + // https://github.com/moby/moby/blob/e7347f8a8c2fd3d2abd34b638d6fc8c18b0278d1/registry/search.go#L148C29-L149C71 + if !strings.Contains(parts[0], ".") && !strings.Contains(parts[0], ":") && parts[0] != "localhost" { + ret = "docker.io/" + ref + } } if opts.withTag && !strings.Contains(ret, ":") {