Skip to content

Commit 5629dbf

Browse files
authored
fix: 解决手动挂载的挂载卷在编辑时不显示的问题 (#1783)
Refs #1781
1 parent ed0923f commit 5629dbf

File tree

1 file changed

+40
-7
lines changed

1 file changed

+40
-7
lines changed

backend/app/service/container.go

+40-7
Original file line numberDiff line numberDiff line change
@@ -389,13 +389,7 @@ func (u *ContainerService) ContainerInfo(req dto.OperationWithName) (*dto.Contai
389389
if oldContainer.HostConfig.Memory != 0 {
390390
data.Memory = float64(oldContainer.HostConfig.Memory) / 1024 / 1024
391391
}
392-
for _, bind := range oldContainer.HostConfig.Binds {
393-
parts := strings.Split(bind, ":")
394-
if len(parts) != 3 {
395-
continue
396-
}
397-
data.Volumes = append(data.Volumes, dto.VolumeHelper{SourceDir: parts[0], ContainerDir: parts[1], Mode: parts[2]})
398-
}
392+
data.Volumes = loadVolumeBinds(oldContainer.HostConfig.Binds)
399393

400394
return &data, nil
401395
}
@@ -843,3 +837,42 @@ func reCreateAfterUpdate(name string, client *client.Client, config *container.C
843837
global.LOG.Errorf("restart after container update failed, err: %v", err)
844838
}
845839
}
840+
841+
func loadVolumeBinds(binds []string) []dto.VolumeHelper {
842+
var datas []dto.VolumeHelper
843+
for _, bind := range binds {
844+
parts := strings.Split(bind, ":")
845+
var volumeItem dto.VolumeHelper
846+
if len(parts) > 3 {
847+
continue
848+
}
849+
volumeItem.SourceDir = parts[0]
850+
if len(parts) == 1 {
851+
volumeItem.ContainerDir = parts[0]
852+
volumeItem.Mode = "rw"
853+
}
854+
if len(parts) == 2 {
855+
switch parts[1] {
856+
case "r", "ro":
857+
volumeItem.ContainerDir = parts[0]
858+
volumeItem.Mode = "ro"
859+
case "rw":
860+
volumeItem.ContainerDir = parts[0]
861+
volumeItem.Mode = "rw"
862+
default:
863+
volumeItem.ContainerDir = parts[1]
864+
volumeItem.Mode = "rw"
865+
}
866+
}
867+
if len(parts) == 3 {
868+
volumeItem.ContainerDir = parts[1]
869+
if parts[2] == "r" {
870+
volumeItem.Mode = "ro"
871+
} else {
872+
volumeItem.Mode = parts[2]
873+
}
874+
}
875+
datas = append(datas, volumeItem)
876+
}
877+
return datas
878+
}

0 commit comments

Comments
 (0)