瀏覽代碼

Merge pull request #26577 from Microsoft/jjh/fstabmount

Windows: Move to fstab options as per OCI
Tõnis Tiigi 8 年之前
父節點
當前提交
b72c7f74a6
共有 3 個文件被更改,包括 17 次插入8 次删除
  1. 6 3
      daemon/oci_windows.go
  2. 7 1
      libcontainerd/client_windows.go
  3. 4 4
      libcontainerd/windowsoci/oci_windows.go

+ 6 - 3
daemon/oci_windows.go

@@ -46,11 +46,14 @@ func (daemon *Daemon) createSpec(c *container.Container) (*libcontainerd.Spec, e
 		return nil, err
 	}
 	for _, mount := range mounts {
-		s.Mounts = append(s.Mounts, windowsoci.Mount{
+		m := windowsoci.Mount{
 			Source:      mount.Source,
 			Destination: mount.Destination,
-			Readonly:    !mount.Writable,
-		})
+		}
+		if !mount.Writable {
+			m.Options = append(m.Options, "ro")
+		}
+		s.Mounts = append(s.Mounts, m)
 	}
 
 	// In s.Process

+ 7 - 1
libcontainerd/client_windows.go

@@ -129,7 +129,13 @@ func (clnt *client) Create(containerID string, checkpoint string, checkpointDir
 		mds[i] = hcsshim.MappedDir{
 			HostPath:      mount.Source,
 			ContainerPath: mount.Destination,
-			ReadOnly:      mount.Readonly}
+			ReadOnly:      false,
+		}
+		for _, o := range mount.Options {
+			if strings.ToLower(o) == "ro" {
+				mds[i].ReadOnly = true
+			}
+		}
 	}
 	configuration.MappedDirectories = mds
 

+ 4 - 4
libcontainerd/windowsoci/oci_windows.go

@@ -101,11 +101,11 @@ type Mount struct {
 	Destination string `json:"destination"`
 	// Type specifies the mount kind.
 	Type string `json:"type"`
-	// Source specifies the source path of the mount.  In the case of bind mounts
-	// this would be the file on the host.
+	// Source specifies the source path of the mount.  In the case of bind mounts on
+	// Linux based systems this would be the file on the host.
 	Source string `json:"source"`
-	// Readonly specifies if the mount should be read-only
-	Readonly bool `json:"readonly"`
+	// Options are fstab style mount options.
+	Options []string `json:"options,omitempty"`
 }
 
 // HvRuntime contains settings specific to Hyper-V containers