From c052887d5849e9811361361c2a2513ced219f625 Mon Sep 17 00:00:00 2001 From: zhengkunwang223 <31820853+zhengkunwang223@users.noreply.github.com> Date: Tue, 23 May 2023 10:31:45 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=BA=94=E7=94=A8=E5=95=86=E5=BA=97?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=A4=9A=E5=AE=B9=E5=99=A8=E7=9A=84=E6=9C=AC?= =?UTF-8?q?=E5=9C=B0=E5=BA=94=E7=94=A8=20(#1108)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Refs https://github.com/1Panel-dev/1Panel/issues/635 --- backend/app/service/app.go | 23 ++++++++--------------- backend/app/service/app_utils.go | 10 ++++++---- frontend/components.d.ts | 1 + 3 files changed, 15 insertions(+), 19 deletions(-) diff --git a/backend/app/service/app.go b/backend/app/service/app.go index 713141973..7e75a690b 100644 --- a/backend/app/service/app.go +++ b/backend/app/service/app.go @@ -286,32 +286,25 @@ func (a AppService) Install(ctx context.Context, req request.AppInstallCreate) ( return } servicesMap := value.(map[string]interface{}) - changeKeys := make(map[string]string, len(servicesMap)) + containerName := constant.ContainerPrefix + app.Key + "-" + common.RandStr(4) + if req.Advanced && req.ContainerName != "" { + containerName = req.ContainerName + } + req.Params[constant.ContainerName] = containerName + appInstall.ContainerName = containerName + index := 0 for k := range servicesMap { - serviceName := k + "-" + common.RandStr(4) - changeKeys[k] = serviceName - containerName := constant.ContainerPrefix + k + "-" + common.RandStr(4) - if req.Advanced && req.ContainerName != "" { - containerName = req.ContainerName - } + appInstall.ServiceName = k if index > 0 { continue } - req.Params[constant.ContainerName] = containerName - appInstall.ServiceName = serviceName - appInstall.ContainerName = containerName index++ } - for k, v := range changeKeys { - servicesMap[v] = servicesMap[k] - delete(servicesMap, k) - } if err = addDockerComposeCommonParam(composeMap, appInstall.ServiceName, req.AppContainerConfig, req.Params); err != nil { return } - var ( composeByte []byte paramByte []byte diff --git a/backend/app/service/app_utils.go b/backend/app/service/app_utils.go index 3004ca322..16ec590ed 100644 --- a/backend/app/service/app_utils.go +++ b/backend/app/service/app_utils.go @@ -412,15 +412,15 @@ func handleMap(params map[string]interface{}, envParams map[string]string) { func downloadApp(app model.App, appDetail model.AppDetail, appInstall *model.AppInstall) (err error) { appResourceDir := path.Join(constant.AppResourceDir, app.Resource) - if !appDetail.Update { + appDownloadDir := path.Join(appResourceDir, app.Key) + appVersionDir := path.Join(appDownloadDir, appDetail.Version) + fileOp := files.NewFileOp() + if !appDetail.Update && fileOp.Stat(appVersionDir) { return } - fileOp := files.NewFileOp() - appDownloadDir := path.Join(appResourceDir, app.Key) if !fileOp.Stat(appDownloadDir) { _ = fileOp.CreateDir(appDownloadDir, 0755) } - appVersionDir := path.Join(appDownloadDir, appDetail.Version) if !fileOp.Stat(appVersionDir) { _ = fileOp.CreateDir(appVersionDir, 0755) } @@ -445,6 +445,8 @@ func downloadApp(app model.App, appDetail model.AppDetail, appInstall *model.App return } _ = fileOp.DeleteFile(filePath) + appDetail.Update = false + _ = appDetailRepo.Update(context.Background(), appDetail) return } diff --git a/frontend/components.d.ts b/frontend/components.d.ts index 23301b829..308d5dba1 100644 --- a/frontend/components.d.ts +++ b/frontend/components.d.ts @@ -69,6 +69,7 @@ declare module 'vue' { ElTabPane: typeof import('element-plus/es')['ElTabPane'] ElTabs: typeof import('element-plus/es')['ElTabs'] ElTag: typeof import('element-plus/es')['ElTag'] + ElText: typeof import('element-plus/es')['ElText'] ElTooltip: typeof import('element-plus/es')['ElTooltip'] ElUpload: typeof import('element-plus/es')['ElUpload'] Err_domain: typeof import('./src/components/error-message/err_domain.vue')['default']