Explorar el Código

override inherited secret mounts

Signed-off-by: aiordache <[email protected]>
aiordache hace 4 años
padre
commit
30d6e1b9e2
Se han modificado 2 ficheros con 19 adiciones y 0 borrados
  1. 10 0
      local/compose/create.go
  2. 9 0
      local/compose/util.go

+ 10 - 0
local/compose/create.go

@@ -310,6 +310,16 @@ func buildContainerMountOptions(p types.Project, s types.ServiceConfig, inherit
 		if definedSecret.External.External {
 			return nil, fmt.Errorf("unsupported external secret %s", definedSecret.Name)
 		}
+
+		if contains(inherited, target) {
+			// remove inherited mount
+			pos := indexOf(inherited, target)
+			if pos >= 0 {
+				mounts = append(mounts[:pos], mounts[pos+1])
+				inherited = append(inherited[:pos], inherited[pos+1])
+			}
+		}
+
 		mount, err := buildMount(p, types.ServiceVolumeConfig{
 			Type:   types.VolumeTypeBind,
 			Source: definedSecret.File,

+ 9 - 0
local/compose/util.go

@@ -38,3 +38,12 @@ func contains(slice []string, item string) bool {
 	}
 	return false
 }
+
+func indexOf(slice []string, item string) int {
+	for i, v := range slice {
+		if v == item {
+			return i
+		}
+	}
+	return -1
+}