diff --git a/agent/app/dto/response/app.go b/agent/app/dto/response/app.go index c97f62bf7..7b0280b25 100644 --- a/agent/app/dto/response/app.go +++ b/agent/app/dto/response/app.go @@ -130,6 +130,7 @@ type AppInstallDTO struct { Container string `json:"container"` IsEdit bool `json:"isEdit"` LinkDB bool `json:"linkDB"` + ServiceName string `json:"serviceName"` } type AppInstallInfo struct { diff --git a/agent/app/service/app.go b/agent/app/service/app.go index 1324858cc..89fe7e920 100644 --- a/agent/app/service/app.go +++ b/agent/app/service/app.go @@ -450,10 +450,11 @@ func (a AppService) Install(req request.AppInstallCreate) (appInstall *model.App } index++ } - if app.Limit == 0 && appInstall.Name != serviceName && len(servicesMap) == 1 { - servicesMap[appInstall.Name] = servicesMap[serviceName] + newServiceName := strings.ToLower(appInstall.Name) + if app.Limit == 0 && newServiceName != serviceName && len(servicesMap) == 1 { + servicesMap[newServiceName] = servicesMap[serviceName] delete(servicesMap, serviceName) - serviceName = appInstall.Name + serviceName = newServiceName } appInstall.ServiceName = serviceName diff --git a/agent/app/service/app_utils.go b/agent/app/service/app_utils.go index 4fbf5419d..cd240b16e 100644 --- a/agent/app/service/app_utils.go +++ b/agent/app/service/app_utils.go @@ -1567,8 +1567,9 @@ func handleInstalled(appInstallList []model.AppInstall, updated bool, sync bool) Website: installed.App.Website, Document: installed.App.Document, }, - Favorite: installed.Favorite, - Container: installed.ContainerName, + Favorite: installed.Favorite, + Container: installed.ContainerName, + ServiceName: strings.ToLower(installed.ServiceName), } if !updated { installDTO.LinkDB = hasLinkDB(installed.ID) diff --git a/frontend/src/api/interface/app.ts b/frontend/src/api/interface/app.ts index d6f286cf7..3fde387f4 100644 --- a/frontend/src/api/interface/app.ts +++ b/frontend/src/api/interface/app.ts @@ -151,6 +151,7 @@ export namespace App { app: App; webUI: string; appKey?: string; + serviceName: string; } export interface AppInstalledInfo { diff --git a/frontend/src/views/app-store/installed/index.vue b/frontend/src/views/app-store/installed/index.vue index d46de905e..7a9519156 100644 --- a/frontend/src/views/app-store/installed/index.vue +++ b/frontend/src/views/app-store/installed/index.vue @@ -702,7 +702,10 @@ const buttons = [ ]; const toContainer = async (row: App.AppInstalled) => { - routerToNameWithQuery('ContainerItem', { filters: 'com.docker.compose.project=' + row.name, uncached: true }); + routerToNameWithQuery('ContainerItem', { + filters: 'com.docker.compose.project=' + row.serviceName, + uncached: true, + }); }; const openBackups = (row: App.AppInstalled) => {