diff --git a/backend/app/service/runtime_utils.go b/backend/app/service/runtime_utils.go index 36069e57a3a8..8979adcfd0cf 100644 --- a/backend/app/service/runtime_utils.go +++ b/backend/app/service/runtime_utils.go @@ -13,24 +13,27 @@ import ( "strings" ) -func buildRuntime(runtime *model.Runtime, service *docker.ComposeService, imageID string) { +func buildRuntime(runtime *model.Runtime, service *docker.ComposeService, oldImageID string) { err := service.ComposeBuild() if err != nil { runtime.Status = constant.RuntimeError runtime.Message = buserr.New(constant.ErrImageBuildErr).Error() + ":" + err.Error() } else { runtime.Status = constant.RuntimeNormal - if imageID != "" { + if oldImageID != "" { client, err := docker.NewClient() - global.LOG.Infof("delete imageID [%s] ", imageID) if err == nil { - if err := client.DeleteImage(imageID); err != nil { - global.LOG.Errorf("delete imageID [%s] error %v", imageID, err) - } else { - global.LOG.Infof("delete old image success") + newImageID, err := client.GetImageIDByName(runtime.Image) + if err == nil && newImageID != oldImageID { + global.LOG.Infof("delete imageID [%s] ", oldImageID) + if err := client.DeleteImage(oldImageID); err != nil { + global.LOG.Errorf("delete imageID [%s] error %v", oldImageID, err) + } else { + global.LOG.Infof("delete old image success") + } } } else { - global.LOG.Errorf("delete imageID [%s] error %v", imageID, err) + global.LOG.Errorf("delete imageID [%s] error %v", oldImageID, err) } } }