| package system // import "github.com/docker/docker/pkg/system" |
| |
| import ( |
| "os" |
| |
| "github.com/Microsoft/hcsshim/osversion" |
| "github.com/sirupsen/logrus" |
| ) |
| |
| var ( |
| // lcowSupported determines if Linux Containers on Windows are supported. |
| lcowSupported = false |
| |
| // containerdRuntimeSupported determines if ContainerD should be the runtime. |
| // As of March 2019, this is an experimental feature. |
| containerdRuntimeSupported = false |
| ) |
| |
| // InitLCOW sets whether LCOW is supported or not. Requires RS5+ |
| func InitLCOW(experimental bool) { |
| v := GetOSVersion() |
| if experimental && v.Build >= osversion.RS5 { |
| lcowSupported = true |
| } |
| } |
| |
| // InitContainerdRuntime sets whether to use ContainerD for runtime |
| // on Windows. This is an experimental feature still in development, and |
| // also requires an environment variable to be set (so as not to turn the |
| // feature on from simply experimental which would also mean LCOW. |
| func InitContainerdRuntime(experimental bool, cdPath string) { |
| if experimental && len(cdPath) > 0 && len(os.Getenv("DOCKER_WINDOWS_CONTAINERD_RUNTIME")) > 0 { |
| logrus.Warnf("Using ContainerD runtime. This feature is experimental") |
| containerdRuntimeSupported = true |
| } |
| } |
| |
| // ContainerdRuntimeSupported returns true if the use of ContainerD runtime is supported. |
| func ContainerdRuntimeSupported() bool { |
| return containerdRuntimeSupported |
| } |