From e4a07f9810673dae9cbe3a984e7a0083ad640e18 Mon Sep 17 00:00:00 2001 From: Seow Alex Date: Fri, 4 Apr 2025 03:17:50 +0800 Subject: [PATCH] fix: use default registry for docker.io (#86) --- src/utils/reference.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/utils/reference.rs b/src/utils/reference.rs index 51a4864..62e80a2 100644 --- a/src/utils/reference.rs +++ b/src/utils/reference.rs @@ -8,8 +8,12 @@ pub fn split(reference: &str) -> (String, String, String) { 0 => unreachable!(), 1 => (DEFAULT_REGISTRY, reference.to_string()), _ => { + // Check if the image is from Docker Hub + if splits[0] == "docker.io" { + (DEFAULT_REGISTRY, splits[1..].join("/")) // Check if we're looking at a domain - if splits[0] == "localhost" || splits[0].contains('.') || splits[0].contains(':') { + } else if splits[0] == "localhost" || splits[0].contains('.') || splits[0].contains(':') + { (splits[0], splits[1..].join("/")) } else { (DEFAULT_REGISTRY, reference.to_string()) @@ -64,6 +68,7 @@ mod tests { assert_eq!(split("localhost:1234/test" ), (String::from("localhost:1234" ), String::from("test" ), String::from("latest"))); assert_eq!(split("test:1234/idk" ), (String::from("test:1234" ), String::from("idk" ), String::from("latest"))); assert_eq!(split("alpine:3.7" ), (String::from(DEFAULT_REGISTRY ), String::from("library/alpine" ), String::from("3.7" ))); + assert_eq!(split("docker.io/library/alpine" ), (String::from(DEFAULT_REGISTRY ), String::from("library/alpine" ), String::from("latest"))); assert_eq!(split("docker.example.com/examplerepo/alpine:3.7" ), (String::from("docker.example.com" ), String::from("examplerepo/alpine" ), String::from("3.7" ))); assert_eq!(split("docker.example.com/examplerepo/alpine/test2:3.7" ), (String::from("docker.example.com" ), String::from("examplerepo/alpine/test2" ), String::from("3.7" ))); assert_eq!(split("docker.example.com/examplerepo/alpine/test2/test3:3.7"), (String::from("docker.example.com" ), String::from("examplerepo/alpine/test2/test3"), String::from("3.7" )));