Просмотр исходного кода

Windows: Set correct root path logic

Signed-off-by: John Howard <jhoward@microsoft.com>
John Howard 8 лет назад
Родитель
Сommit
8f76a1d08b
1 измененных файлов с 13 добавлено и 3 удалено
  1. 13 3
      daemon/oci_windows.go

+ 13 - 3
daemon/oci_windows.go

@@ -65,9 +65,19 @@ func (daemon *Daemon) createSpec(c *container.Container) (*libcontainerd.Spec, e
 	s.Process.Terminal = c.Config.Tty
 	s.Process.Terminal = c.Config.Tty
 	s.Process.User.Username = c.Config.User
 	s.Process.User.Username = c.Config.User
 
 
-	// In spec.Root
-	s.Root.Path = c.BaseFS
-	s.Root.Readonly = c.HostConfig.ReadonlyRootfs
+	// In spec.Root. This is not set for Hyper-V containers
+	isHyperV := false
+	if c.HostConfig.Isolation.IsDefault() {
+		// Container using default isolation, so take the default from the daemon configuration
+		isHyperV = daemon.defaultIsolation.IsHyperV()
+	} else {
+		// Container may be requesting an explicit isolation mode.
+		isHyperV = c.HostConfig.Isolation.IsHyperV()
+	}
+	if !isHyperV {
+		s.Root.Path = c.BaseFS
+	}
+	s.Root.Readonly = false // Windows does not support a read-only root filesystem
 
 
 	// In s.Windows.Resources
 	// In s.Windows.Resources
 	// @darrenstahlmsft implement these resources
 	// @darrenstahlmsft implement these resources