From 0b1b4615dd887d58b5853189597599a7137125b9 Mon Sep 17 00:00:00 2001 From: Jason Hall Date: Sat, 10 Oct 2020 20:58:47 -0400 Subject: [PATCH] support mirroring tags and digests --- cmd/mirror/main.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/cmd/mirror/main.go b/cmd/mirror/main.go index 12def14..bc54950 100644 --- a/cmd/mirror/main.go +++ b/cmd/mirror/main.go @@ -77,13 +77,19 @@ func (s *server) serveMirrorManifest(w http.ResponseWriter, r *http.Request) { parts := strings.Split(path, "/") refstr := strings.Join(parts[:len(parts)-2], "/") + tagOrDigest := parts[len(parts)-1] + if strings.HasPrefix(tagOrDigest, "sha256:") { + refstr += "@" + tagOrDigest + } else { + refstr += ":" + tagOrDigest + } for strings.HasPrefix(refstr, "mirror.kontain.me/") { refstr = strings.TrimPrefix(refstr, "mirror.kontain.me/") } ref, err := name.ParseReference(refstr) if err != nil { - s.error.Printf("ERROR (ParseReference): %v", err) + s.error.Printf("ERROR (ParseReference(%q)): %v", refstr, err) serve.Error(w, err) return }