Check kicbase arch

pull/19205/head
Steven Powell 2024-07-06 12:37:27 -05:00
parent ea7dc2689d
commit 0c22171ad8
1 changed files with 28 additions and 7 deletions

View File

@ -78,14 +78,35 @@ func ImageExistsInDaemon(img string) bool {
// Check if image exists locally
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), image.TrimDockerIO(img)) {
klog.Infof("Found %s in local docker daemon, skipping pull", img)
return true
}
output, err := cmd.Output()
if err != nil {
klog.Warningf("failed to list docker images: %v", err)
return false
}
// Else, pull it
return false
if !strings.Contains(string(output), image.TrimDockerIO(img)) {
return false
}
ref, err := name.ParseReference(img)
if err != nil {
klog.Warningf("failed to parse reference: %v", err)
return false
}
dImg, err := daemon.Image(ref)
if err != nil {
klog.Warningf("failed to get image from daemon: %v", err)
return false
}
cfg, err := dImg.ConfigFile()
if err != nil {
klog.Warningf("failed to get config for %s: %v", img, err)
return false
}
if cfg.Architecture != runtime.GOOS {
klog.Warningf("image %s is of wrong architecture", img)
return false
}
klog.Infof("Found %s in local docker daemon, skipping pull", img)
return true
}
// ImageToCache downloads img (if not present in cache) and writes it to the local cache directory