mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00

Signed-off-by: John Howard <jhoward@microsoft.com> This PR has the API changes described in https://github.com/moby/moby/issues/34617. Specifically, it adds an HTTP header "X-Requested-Platform" which is a JSON-encoded OCI Image-spec `Platform` structure. In addition, it renames (almost all) uses of a string variable platform (and associated) methods/functions to os. This makes it much clearer to disambiguate with the swarm "platform" which is really os/arch. This is a stepping stone to getting the daemon towards fully multi-platform/arch-aware, and makes it clear when "operating system" is being referred to rather than "platform" which is misleadingly used - sometimes in the swarm meaning, but more often as just the operating system.
43 lines
1.1 KiB
Go
43 lines
1.1 KiB
Go
package daemon
|
|
|
|
import (
|
|
"github.com/Microsoft/opengcs/client"
|
|
"github.com/docker/docker/container"
|
|
"github.com/docker/docker/libcontainerd"
|
|
)
|
|
|
|
func (daemon *Daemon) getLibcontainerdCreateOptions(container *container.Container) ([]libcontainerd.CreateOption, error) {
|
|
createOptions := []libcontainerd.CreateOption{}
|
|
|
|
// LCOW options.
|
|
if container.OS == "linux" {
|
|
config := &client.Config{}
|
|
if err := config.GenerateDefault(daemon.configStore.GraphOptions); err != nil {
|
|
return nil, err
|
|
}
|
|
// Override from user-supplied options.
|
|
for k, v := range container.HostConfig.StorageOpt {
|
|
switch k {
|
|
case "lcow.kirdpath":
|
|
config.KirdPath = v
|
|
case "lcow.kernel":
|
|
config.KernelFile = v
|
|
case "lcow.initrd":
|
|
config.InitrdFile = v
|
|
case "lcow.vhdx":
|
|
config.Vhdx = v
|
|
case "lcow.bootparameters":
|
|
config.BootParameters = v
|
|
}
|
|
}
|
|
if err := config.Validate(); err != nil {
|
|
return nil, err
|
|
}
|
|
lcowOpts := &libcontainerd.LCOWOption{
|
|
Config: config,
|
|
}
|
|
createOptions = append(createOptions, lcowOpts)
|
|
}
|
|
|
|
return createOptions, nil
|
|
}
|