mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2025-10-06 05:24:33 +08:00
fix: 解决多容器应用升级失败的问题 (#2090)
This commit is contained in:
parent
7ff9c75bdf
commit
ac0f697111
3 changed files with 25 additions and 17 deletions
|
@ -782,8 +782,8 @@ func (a AppService) SyncAppListFromRemote() (err error) {
|
||||||
for _, v := range versions {
|
for _, v := range versions {
|
||||||
version := v.Name
|
version := v.Name
|
||||||
detail := detailsMap[version]
|
detail := detailsMap[version]
|
||||||
|
versionUrl := fmt.Sprintf("%s/%s/%s", baseRemoteUrl, app.Key, version)
|
||||||
dockerComposeUrl := fmt.Sprintf("%s/%s/%s/%s", baseRemoteUrl, app.Key, version, "docker-compose.yml")
|
dockerComposeUrl := fmt.Sprintf("%s/%s", versionUrl, "docker-compose.yml")
|
||||||
composeRes, err := http.Get(dockerComposeUrl)
|
composeRes, err := http.Get(dockerComposeUrl)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -796,7 +796,7 @@ func (a AppService) SyncAppListFromRemote() (err error) {
|
||||||
|
|
||||||
paramByte, _ := json.Marshal(v.AppForm)
|
paramByte, _ := json.Marshal(v.AppForm)
|
||||||
detail.Params = string(paramByte)
|
detail.Params = string(paramByte)
|
||||||
detail.DownloadUrl = v.DownloadUrl
|
detail.DownloadUrl = fmt.Sprintf("%s/%s", versionUrl, app.Key+"-"+version+".tar.gz")
|
||||||
detail.DownloadCallBackUrl = v.DownloadCallBackUrl
|
detail.DownloadCallBackUrl = v.DownloadCallBackUrl
|
||||||
detail.Update = true
|
detail.Update = true
|
||||||
detail.LastModified = v.LastModified
|
detail.LastModified = v.LastModified
|
||||||
|
|
|
@ -318,20 +318,21 @@ func upgradeInstall(installId uint, detailId uint, backup bool) error {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
servicesMap := value.(map[string]interface{})
|
servicesMap := value.(map[string]interface{})
|
||||||
index := 0
|
if len(servicesMap) == 1 {
|
||||||
oldServiceName := ""
|
index := 0
|
||||||
for k := range servicesMap {
|
oldServiceName := ""
|
||||||
oldServiceName = k
|
for k := range servicesMap {
|
||||||
index++
|
oldServiceName = k
|
||||||
if index > 0 {
|
index++
|
||||||
break
|
if index > 0 {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
servicesMap[install.ServiceName] = servicesMap[oldServiceName]
|
||||||
|
if install.ServiceName != oldServiceName {
|
||||||
|
delete(servicesMap, oldServiceName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
servicesMap[install.ServiceName] = servicesMap[oldServiceName]
|
|
||||||
if install.ServiceName != oldServiceName {
|
|
||||||
delete(servicesMap, oldServiceName)
|
|
||||||
}
|
|
||||||
|
|
||||||
envs := make(map[string]interface{})
|
envs := make(map[string]interface{})
|
||||||
if upErr = json.Unmarshal([]byte(install.Env), &envs); upErr != nil {
|
if upErr = json.Unmarshal([]byte(install.Env), &envs); upErr != nil {
|
||||||
return
|
return
|
||||||
|
@ -518,7 +519,7 @@ func downloadApp(app model.App, appDetail model.AppDetail, appInstall *model.App
|
||||||
_ = fileOp.CreateDir(appVersionDir, 0755)
|
_ = fileOp.CreateDir(appVersionDir, 0755)
|
||||||
}
|
}
|
||||||
global.LOG.Infof("download app[%s] from %s", app.Name, appDetail.DownloadUrl)
|
global.LOG.Infof("download app[%s] from %s", app.Name, appDetail.DownloadUrl)
|
||||||
filePath := path.Join(appVersionDir, appDetail.Version+".tar.gz")
|
filePath := path.Join(appVersionDir, app.Key+"-"+appDetail.Version+".tar.gz")
|
||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -533,7 +534,7 @@ func downloadApp(app model.App, appDetail model.AppDetail, appInstall *model.App
|
||||||
global.LOG.Errorf("download app[%s] error %v", app.Name, err)
|
global.LOG.Errorf("download app[%s] error %v", app.Name, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if err = fileOp.Decompress(filePath, appVersionDir, files.TarGz); err != nil {
|
if err = fileOp.Decompress(filePath, appResourceDir, files.TarGz); err != nil {
|
||||||
global.LOG.Errorf("decompress app[%s] error %v", app.Name, err)
|
global.LOG.Errorf("decompress app[%s] error %v", app.Name, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
|
@ -103,6 +103,12 @@ func (u *SettingService) Update(key, value string) error {
|
||||||
if err := ntp.UpdateSystemTimeZone(value); err != nil {
|
if err := ntp.UpdateSystemTimeZone(value); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
case "AppStoreLastModified":
|
||||||
|
exist, _ := settingRepo.Get(settingRepo.WithByKey("AppStoreLastModified"))
|
||||||
|
if exist.ID == 0 {
|
||||||
|
_ = settingRepo.Create("AppStoreLastModified", value)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := settingRepo.Update(key, value); err != nil {
|
if err := settingRepo.Update(key, value); err != nil {
|
||||||
|
@ -128,6 +134,7 @@ func (u *SettingService) Update(key, value string) error {
|
||||||
}
|
}
|
||||||
case "UserName", "Password":
|
case "UserName", "Password":
|
||||||
_ = global.SESSION.Clean()
|
_ = global.SESSION.Clean()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
|
Loading…
Add table
Reference in a new issue