Browse Source

Filter out default mounts that are override by user.

Signed-off-by: Mrunal Patel <mrunalp@gmail.com>
Mrunal Patel 10 years ago
parent
commit
7804cd36ee
1 changed files with 14 additions and 0 deletions
  1. 14 0
      daemon/execdriver/native/create.go

+ 14 - 0
daemon/execdriver/native/create.go

@@ -212,6 +212,20 @@ func (d *driver) setupRlimits(container *configs.Config, c *execdriver.Command)
 }
 
 func (d *driver) setupMounts(container *configs.Config, c *execdriver.Command) error {
+	userMounts := make(map[string]struct{})
+	for _, m := range c.Mounts {
+		userMounts[m.Destination] = struct{}{}
+	}
+
+	// Filter out mounts that are overriden by user supplied mounts
+	var defaultMounts []*configs.Mount
+	for _, m := range container.Mounts {
+		if _, ok := userMounts[m.Destination]; !ok {
+			defaultMounts = append(defaultMounts, m)
+		}
+	}
+	container.Mounts = defaultMounts
+
 	for _, m := range c.Mounts {
 		dest, err := symlink.FollowSymlinkInScope(filepath.Join(c.Rootfs, m.Destination), c.Rootfs)
 		if err != nil {