// FirstStart is used for an optimization on first boot of Windows
FirstStartbool`json:"first_start,omitempty"`
// LayerFolder is the path to the current layer folder
LayerFolderstring`json:"layer_folder,omitempty"`
// Layer paths of the parent layers
LayerPaths[]string`json:"layer_paths,omitempty"`
// HvRuntime contains settings specific to Hyper-V containers, omitted if not using Hyper-V isolation
HvRuntime*HvRuntime`json:"hv_runtime,omitempty"`
}
// Process contains information to start a specific application inside the container.
typeProcessstruct{
// Terminal indicates if stderr should NOT be attached for the container.
Terminalbool`json:"terminal"`
// ConsoleSize contains the initial h,w of the console size
InitialConsoleSize[2]int`json:"-"`
// User specifies user information for the process.
UserUser`json:"user"`
// Args specifies the binary and arguments for the application to execute.
Args[]string`json:"args"`
// Env populates the process environment for the process.
Env[]string`json:"env,omitempty"`
// Cwd is the current working directory for the process and must be
// relative to the container's root.
Cwdstring`json:"cwd"`
}
// User contains the user information for Windows
typeUserstruct{
Userstring`json:"user,omitempty"`
}
// Root contains information about the container's root filesystem on the host.
typeRootstruct{
// Path is the absolute path to the container's root filesystem.
Pathstring`json:"path"`
// Readonly makes the root filesystem for the container readonly before the process is executed.
Readonlybool`json:"readonly"`
}
// Platform specifies OS and arch information for the host system that the container
// is created for.
typePlatformstruct{
// OS is the operating system.
OSstring`json:"os"`
// Arch is the architecture
Archstring`json:"arch"`
}
// Mount specifies a mount for a container.
typeMountstruct{
// Destination is the path where the mount will be placed relative to the container's root. The path and child directories MUST exist, a runtime MUST NOT create directories automatically to a mount point.
Destinationstring`json:"destination"`
// Type specifies the mount kind.
Typestring`json:"type"`
// Source specifies the source path of the mount. In the case of bind mounts
// this would be the file on the host.
Sourcestring`json:"source"`
// Readonly specifies if the mount should be read-only
Readonlybool`json:"readonly"`
}
// HvRuntime contains settings specific to Hyper-V containers
typeHvRuntimestruct{
// ImagePath is the path to the Utility VM image for this container
ImagePathstring`json:"image_path,omitempty"`
}
// Networking contains the platform specific network settings for the container
typeNetworkingstruct{
// TODO Windows TP5. The following three fields are for 'legacy' non-
// libnetwork networking through HCS. They can be removed once TP4 is
// no longer supported. Also remove in libcontainerd\client_windows.go,
// function Create(), and in daemon\oci_windows.go, function CreateSpec()