| package main |
| |
| import ( |
| "context" |
| "fmt" |
| "net" |
| "os" |
| "path/filepath" |
| "time" |
| |
| "github.com/docker/docker/daemon/config" |
| "github.com/docker/docker/libcontainerd/supervisor" |
| "github.com/docker/docker/pkg/system" |
| "github.com/sirupsen/logrus" |
| "golang.org/x/sys/windows" |
| ) |
| |
| func getDefaultDaemonConfigFile() (string, error) { |
| return "", nil |
| } |
| |
| // setDefaultUmask doesn't do anything on windows |
| func setDefaultUmask() error { |
| return nil |
| } |
| |
| func getDaemonConfDir(root string) (string, error) { |
| return filepath.Join(root, `\config`), nil |
| } |
| |
| // preNotifySystem sends a message to the host when the API is active, but before the daemon is |
| func preNotifySystem() { |
| // start the service now to prevent timeouts waiting for daemon to start |
| // but still (eventually) complete all requests that are sent after this |
| if service != nil { |
| err := service.started() |
| if err != nil { |
| logrus.Fatal(err) |
| } |
| } |
| } |
| |
| // notifySystem sends a message to the host when the server is ready to be used |
| func notifySystem() { |
| } |
| |
| // notifyShutdown is called after the daemon shuts down but before the process exits. |
| func notifyShutdown(err error) { |
| if service != nil { |
| if err != nil { |
| logrus.Fatal(err) |
| } |
| service.stopped(err) |
| } |
| } |
| |
| func (cli *DaemonCli) getPlatformContainerdDaemonOpts() ([]supervisor.DaemonOpt, error) { |
| return nil, nil |
| } |
| |
| // setupConfigReloadTrap configures a Win32 event to reload the configuration. |
| func (cli *DaemonCli) setupConfigReloadTrap() { |
| go func() { |
| sa := windows.SecurityAttributes{ |
| Length: 0, |
| } |
| event := "Global\\docker-daemon-config-" + fmt.Sprint(os.Getpid()) |
| ev, _ := windows.UTF16PtrFromString(event) |
| if h, _ := windows.CreateEvent(&sa, 0, 0, ev); h != 0 { |
| logrus.Debugf("Config reload - waiting signal at %s", event) |
| for { |
| windows.WaitForSingleObject(h, windows.INFINITE) |
| cli.reloadConfig() |
| } |
| } |
| }() |
| } |
| |
| // getSwarmRunRoot gets the root directory for swarm to store runtime state |
| // For example, the control socket |
| func (cli *DaemonCli) getSwarmRunRoot() string { |
| return "" |
| } |
| |
| func allocateDaemonPort(addr string) error { |
| return nil |
| } |
| |
| func wrapListeners(proto string, ls []net.Listener) []net.Listener { |
| return ls |
| } |
| |
| func newCgroupParent(config *config.Config) string { |
| return "" |
| } |
| |
| func (cli *DaemonCli) initContainerD(_ context.Context) (func(time.Duration) error, error) { |
| system.InitContainerdRuntime(cli.Config.Experimental, cli.Config.ContainerdAddr) |
| return nil, nil |
| } |