diff --git a/shared/build/util.go b/shared/build/util.go index 3829e99ea..e4b206706 100644 --- a/shared/build/util.go +++ b/shared/build/util.go @@ -68,7 +68,10 @@ func parseImageName(image string) (owner, name, tag string) { } parts := strings.Split(name, "/") - if len(parts) == 2 { + if len := len(parts); len == 3 { + owner = fmt.Sprintf("%s/%s", parts[0], parts[1]) + name = parts[2] + } else if len == 2 { owner = parts[0] name = parts[1] } diff --git a/shared/build/util_test.go b/shared/build/util_test.go index ae19b154c..7d5f8b6d2 100644 --- a/shared/build/util_test.go +++ b/shared/build/util_test.go @@ -15,6 +15,8 @@ func TestParseImageName(t *testing.T) { {"johnsmith", "redis", "latest", "johnsmith/redis"}, // image name with no owner specified {"bradrydzewski", "redis", "2.8", "redis:2.8"}, + // image name with hostname + {"docker.example.com/johnsmith", "redis", "latest", "docker.example.com/johnsmith/redis"}, // image name with ownly name specified {"bradrydzewski", "redis2", "latest", "redis2"}, // image name that is a known alias