From 3a888d289f41a8ff4748f6f6ca0a901d67013d9d Mon Sep 17 00:00:00 2001 From: wanghe-fit2cloud Date: Fri, 12 Jun 2026 14:10:20 +0800 Subject: [PATCH] fix app image pull check --- agent/app/service/app_utils.go | 9 +++++++++ agent/utils/docker/docker.go | 6 ++++++ 2 files changed, 15 insertions(+) diff --git a/agent/app/service/app_utils.go b/agent/app/service/app_utils.go index 905afc190e72..2c212335e41c 100644 --- a/agent/app/service/app_utils.go +++ b/agent/app/service/app_utils.go @@ -788,6 +788,15 @@ func upgradeInstall(req request.AppInstallUpgrade) error { err = buserr.WithNameAndErr("ErrDockerPullImage", "", err) return err } + exist, err := dockerCLi.ImageExists(image) + if err != nil { + err = buserr.WithNameAndErr("ErrDockerPullImage", "", err) + return err + } + if !exist { + err = buserr.WithNameAndErr("ErrDockerPullImage", "", fmt.Errorf("image %s not found", image)) + return err + } t.LogSuccess(i18n.GetMsgByKey("PullImage")) } } diff --git a/agent/utils/docker/docker.go b/agent/utils/docker/docker.go index 6047084ad391..caae8d123e6b 100644 --- a/agent/utils/docker/docker.go +++ b/agent/utils/docker/docker.go @@ -208,6 +208,12 @@ func (c Client) PullImageWithProcessAndOptions(task *task.Task, imageName string } return err } + if msg, ok := progress["errorDetail"]; ok { + return fmt.Errorf("image pull failed, err: %v", msg) + } + if msg, ok := progress["error"]; ok { + return fmt.Errorf("image pull failed, err: %v", msg) + } status, _ := progress["status"].(string) if status == "Downloading" || status == "Extracting" { logProcess(progress, task)