diff options
author | Sebastiaan van Stijn <github@gone.nl> | 2018-03-21 12:57:53 +0100 |
---|---|---|
committer | Sebastiaan van Stijn <github@gone.nl> | 2018-03-21 12:57:53 +0100 |
commit | cd3e84c6b38e74d03ab31db804bc9b49dcab8243 (patch) | |
tree | 74098ca3181b6c3498890abce7832ab3da487031 /cmd | |
parent | 4460472f4ee419794bb416d131c92dc296b5c625 (diff) | |
download | docker-cd3e84c6b38e74d03ab31db804bc9b49dcab8243.tar.gz |
Split daemon service code to _windows file
This moves some of the code that was conditionally
executed on Windows to a separate, windows-only file.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Diffstat (limited to 'cmd')
-rw-r--r-- | cmd/dockerd/daemon_unix.go | 4 | ||||
-rw-r--r-- | cmd/dockerd/docker.go | 44 | ||||
-rw-r--r-- | cmd/dockerd/docker_unix.go | 8 | ||||
-rw-r--r-- | cmd/dockerd/docker_windows.go | 33 | ||||
-rw-r--r-- | cmd/dockerd/service_unsupported.go | 4 |
5 files changed, 45 insertions, 48 deletions
diff --git a/cmd/dockerd/daemon_unix.go b/cmd/dockerd/daemon_unix.go index a65d8ed012..6ab2ada485 100644 --- a/cmd/dockerd/daemon_unix.go +++ b/cmd/dockerd/daemon_unix.go @@ -104,10 +104,6 @@ func allocateDaemonPort(addr string) error { return nil } -// notifyShutdown is called after the daemon shuts down but before the process exits. -func notifyShutdown(err error) { -} - func wrapListeners(proto string, ls []net.Listener) []net.Listener { switch proto { case "unix": diff --git a/cmd/dockerd/docker.go b/cmd/dockerd/docker.go index 2ccca46c18..e90a12e366 100644 --- a/cmd/dockerd/docker.go +++ b/cmd/dockerd/docker.go @@ -3,7 +3,6 @@ package main import ( "fmt" "os" - "path/filepath" "runtime" "github.com/docker/docker/cli" @@ -25,6 +24,10 @@ func newDaemonCommand() *cobra.Command { SilenceErrors: true, Args: cli.NoArgs, RunE: func(cmd *cobra.Command, args []string) error { + if opts.version { + showVersion() + return nil + } opts.flags = cmd.Flags() return runDaemon(opts) }, @@ -41,45 +44,6 @@ func newDaemonCommand() *cobra.Command { return cmd } -func runDaemon(opts *daemonOptions) error { - if opts.version { - showVersion() - return nil - } - - daemonCli := NewDaemonCli() - - // Windows specific settings as these are not defaulted. - if runtime.GOOS == "windows" { - if opts.daemonConfig.Pidfile == "" { - opts.daemonConfig.Pidfile = filepath.Join(opts.daemonConfig.Root, "docker.pid") - } - if opts.configFile == "" { - opts.configFile = filepath.Join(opts.daemonConfig.Root, `config\daemon.json`) - } - } - - // On Windows, this may be launching as a service or with an option to - // register the service. - stop, runAsService, err := initService(daemonCli) - if err != nil { - logrus.Fatal(err) - } - - if stop { - return nil - } - - // If Windows SCM manages the service - no need for PID files - if runAsService { - opts.daemonConfig.Pidfile = "" - } - - err = daemonCli.start(opts) - notifyShutdown(err) - return err -} - func showVersion() { fmt.Printf("Docker version %s, build %s\n", dockerversion.Version, dockerversion.GitCommit) } diff --git a/cmd/dockerd/docker_unix.go b/cmd/dockerd/docker_unix.go new file mode 100644 index 0000000000..0dec48663d --- /dev/null +++ b/cmd/dockerd/docker_unix.go @@ -0,0 +1,8 @@ +// +build !windows + +package main + +func runDaemon(opts *daemonOptions) error { + daemonCli := NewDaemonCli() + return daemonCli.start(opts) +} diff --git a/cmd/dockerd/docker_windows.go b/cmd/dockerd/docker_windows.go index 889e35272d..bd8bc5a58e 100644 --- a/cmd/dockerd/docker_windows.go +++ b/cmd/dockerd/docker_windows.go @@ -1,5 +1,38 @@ package main import ( + "path/filepath" + _ "github.com/docker/docker/autogen/winresources/dockerd" + "github.com/sirupsen/logrus" ) + +func runDaemon(opts *daemonOptions) error { + daemonCli := NewDaemonCli() + + // On Windows, this may be launching as a service or with an option to + // register the service. + stop, runAsService, err := initService(daemonCli) + if err != nil { + logrus.Fatal(err) + } + + if stop { + return nil + } + + // Windows specific settings as these are not defaulted. + if opts.configFile == "" { + opts.configFile = filepath.Join(opts.daemonConfig.Root, `config\daemon.json`) + } + if runAsService { + // If Windows SCM manages the service - no need for PID files + opts.daemonConfig.Pidfile = "" + } else if opts.daemonConfig.Pidfile == "" { + opts.daemonConfig.Pidfile = filepath.Join(opts.daemonConfig.Root, "docker.pid") + } + + err = daemonCli.start(opts) + notifyShutdown(err) + return err +} diff --git a/cmd/dockerd/service_unsupported.go b/cmd/dockerd/service_unsupported.go index e67ad474b1..bbcb7f3f3b 100644 --- a/cmd/dockerd/service_unsupported.go +++ b/cmd/dockerd/service_unsupported.go @@ -6,9 +6,5 @@ import ( "github.com/spf13/pflag" ) -func initService(daemonCli *DaemonCli) (bool, bool, error) { - return false, false, nil -} - func installServiceFlags(flags *pflag.FlagSet) { } |