diff --git a/pkg/minikube/cruntime/docker.go b/pkg/minikube/cruntime/docker.go index bc2ecab54fd5..24256f36a4e4 100644 --- a/pkg/minikube/cruntime/docker.go +++ b/pkg/minikube/cruntime/docker.go @@ -38,6 +38,7 @@ import ( "k8s.io/minikube/pkg/minikube/config" "k8s.io/minikube/pkg/minikube/docker" "k8s.io/minikube/pkg/minikube/download" + "k8s.io/minikube/pkg/minikube/image" "k8s.io/minikube/pkg/minikube/style" "k8s.io/minikube/pkg/minikube/sysinit" ) @@ -604,7 +605,7 @@ func dockerImagesPreloaded(runner command.Runner, images []string) bool { } preloadedImages := map[string]struct{}{} for _, i := range strings.Split(rr.Stdout.String(), "\n") { - i = trimDockerIO(i) + i = image.TrimDockerIO(i) preloadedImages[i] = struct{}{} } @@ -612,7 +613,7 @@ func dockerImagesPreloaded(runner command.Runner, images []string) bool { // Make sure images == imgs for _, i := range images { - i = trimDockerIO(i) + i = image.TrimDockerIO(i) if _, ok := preloadedImages[i]; !ok { klog.Infof("%s wasn't preloaded", i) return false @@ -644,13 +645,6 @@ func addDockerIO(name string) string { return reg + "/" + img } -// Remove docker.io prefix since it won't be included in images names -// when we call 'docker images' -func trimDockerIO(name string) string { - name = strings.TrimPrefix(name, "docker.io/") - return name -} - func dockerBoundToContainerd(runner command.Runner) bool { // NOTE: assumes systemd rr, err := runner.RunCmd(exec.Command("sudo", "systemctl", "cat", "docker.service")) diff --git a/pkg/minikube/download/image.go b/pkg/minikube/download/image.go index b3d63297cee4..254a98ff1658 100644 --- a/pkg/minikube/download/image.go +++ b/pkg/minikube/download/image.go @@ -34,6 +34,7 @@ import ( "github.com/pkg/errors" "k8s.io/klog/v2" "k8s.io/minikube/pkg/minikube/detect" + "k8s.io/minikube/pkg/minikube/image" "k8s.io/minikube/pkg/minikube/localpath" ) @@ -75,7 +76,7 @@ func ImageExistsInDaemon(img string) bool { klog.Infof("Checking for %s in local docker daemon", img) cmd := exec.Command("docker", "images", "--format", "{{.Repository}}:{{.Tag}}@{{.Digest}}") if output, err := cmd.Output(); err == nil { - if strings.Contains(string(output), img) { + if strings.Contains(string(output), image.TrimDockerIO(img)) { klog.Infof("Found %s in local docker daemon, skipping pull", img) return true } diff --git a/pkg/minikube/image/image.go b/pkg/minikube/image/image.go index 6214b533864c..0db355616488 100644 --- a/pkg/minikube/image/image.go +++ b/pkg/minikube/image/image.go @@ -319,3 +319,9 @@ func normalizeTagName(image string) string { } return base + ":" + tag } + +// Remove docker.io prefix since it won't be included in image names +// when we call `docker images`. +func TrimDockerIO(name string) string { + return strings.TrimPrefix(name, "docker.io/") +}