diff --git a/server/controller/src/main/java/ai/starwhale/mlops/common/DockerImage.java b/server/controller/src/main/java/ai/starwhale/mlops/common/DockerImage.java index 672576c3a3..0fa9f71551 100644 --- a/server/controller/src/main/java/ai/starwhale/mlops/common/DockerImage.java +++ b/server/controller/src/main/java/ai/starwhale/mlops/common/DockerImage.java @@ -46,7 +46,7 @@ public class DockerImage { public DockerImage(String imageNameFull) { Matcher matcher = PATTERN_IMAGE_FULL.matcher(imageNameFull); if (!matcher.matches()) { - this.registry = null; + this.registry = ""; this.image = imageNameFull; } else { String candidateRegistry = matcher.group(1); @@ -54,7 +54,7 @@ public DockerImage(String imageNameFull) { this.registry = candidateRegistry; image = matcher.group(2); } else { - this.registry = null; + this.registry = ""; this.image = imageNameFull; } @@ -71,7 +71,7 @@ private static boolean isDomain(String candidate) { public String resolve(String newRegistry) { if (!StringUtils.hasText(newRegistry)) { - return image; + newRegistry = this.registry; } return StringUtils.trimTrailingCharacter(newRegistry, '/') + SLASH + image; } diff --git a/server/controller/src/test/java/ai/starwhale/mlops/common/DockerImageTest.java b/server/controller/src/test/java/ai/starwhale/mlops/common/DockerImageTest.java index 991b1f2f3f..8c4240405b 100644 --- a/server/controller/src/test/java/ai/starwhale/mlops/common/DockerImageTest.java +++ b/server/controller/src/test/java/ai/starwhale/mlops/common/DockerImageTest.java @@ -120,20 +120,20 @@ public void testIpPortConstructor() { @Test public void testOnlyNameConstructor() { DockerImage dockerImage = new DockerImage("star-whale/starwhale:0.3.0-rc.6-nightly-20220920-016d5507"); - Assertions.assertEquals(new DockerImage(null, "star-whale/starwhale:0.3.0-rc.6-nightly-20220920-016d5507"), + Assertions.assertEquals(new DockerImage("", "star-whale/starwhale:0.3.0-rc.6-nightly-20220920-016d5507"), dockerImage); dockerImage = new DockerImage("star-whale/starwhale:latest"); - Assertions.assertEquals(new DockerImage(null, "star-whale/starwhale:latest"), dockerImage); + Assertions.assertEquals(new DockerImage("", "star-whale/starwhale:latest"), dockerImage); dockerImage = new DockerImage("star-whale/starwhale"); - Assertions.assertEquals(new DockerImage(null, "star-whale/starwhale"), dockerImage); + Assertions.assertEquals(new DockerImage("", "star-whale/starwhale"), dockerImage); } @Test public void testResolve() { - Map images = Map.of("", "star-whale/starwhale:0.3.0-rc.6-nightly-20220920-016d5507", + Map images = Map.of( "docker.io", "docker.io/star-whale/starwhale:0.3.0-rc.6-nightly-20220920-016d5507", "docker.io/", "docker.io/star-whale/starwhale:0.3.0-rc.6-nightly-20220920-016d5507", "ghcr.io", "ghcr.io/star-whale/starwhale:0.3.0-rc.6-nightly-20220920-016d5507", @@ -161,6 +161,8 @@ public void testResolve() { .resolve(k) )); + images.forEach((k, v) -> Assertions.assertEquals(v, new DockerImage(v).resolve(""))); + } }