summaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorSebastiaan van Stijn <github@gone.nl>2018-03-21 12:57:53 +0100
committerSebastiaan van Stijn <github@gone.nl>2018-03-21 12:57:53 +0100
commitcd3e84c6b38e74d03ab31db804bc9b49dcab8243 (patch)
tree74098ca3181b6c3498890abce7832ab3da487031 /cmd
parent4460472f4ee419794bb416d131c92dc296b5c625 (diff)
downloaddocker-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.go4
-rw-r--r--cmd/dockerd/docker.go44
-rw-r--r--cmd/dockerd/docker_unix.go8
-rw-r--r--cmd/dockerd/docker_windows.go33
-rw-r--r--cmd/dockerd/service_unsupported.go4
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) {
}