瀏覽代碼

Windows: Calculate PID file after root

Signed-off-by: John Howard <jhoward@microsoft.com>
John Howard 8 年之前
父節點
當前提交
7453d028da
共有 2 個文件被更改,包括 10 次插入2 次删除
  1. 7 0
      cmd/dockerd/docker.go
  2. 3 2
      daemon/config_windows.go

+ 7 - 0
cmd/dockerd/docker.go

@@ -3,6 +3,8 @@ package main
 import (
 	"fmt"
 	"os"
+	"path/filepath"
+	"runtime"
 
 	"github.com/Sirupsen/logrus"
 	"github.com/docker/docker/cli"
@@ -61,6 +63,11 @@ func runDaemon(opts daemonOptions) error {
 
 	daemonCli := NewDaemonCli()
 
+	// On Windows, if there's no explicit pidfile set, set to under the daemon root
+	if runtime.GOOS == "windows" && opts.daemonConfig.Pidfile == "" {
+		opts.daemonConfig.Pidfile = filepath.Join(opts.daemonConfig.Root, "docker.pid")
+	}
+
 	// On Windows, this may be launching as a service or with an option to
 	// register the service.
 	stop, err := initService(daemonCli)

+ 3 - 2
daemon/config_windows.go

@@ -2,14 +2,15 @@ package daemon
 
 import (
 	"os"
+	"path/filepath"
 
 	"github.com/docker/docker/api/types"
 	"github.com/spf13/pflag"
 )
 
 var (
-	defaultPidFile = os.Getenv("programdata") + string(os.PathSeparator) + "docker.pid"
-	defaultGraph   = os.Getenv("programdata") + string(os.PathSeparator) + "docker"
+	defaultPidFile string
+	defaultGraph   = filepath.Join(os.Getenv("programdata"), "docker")
 )
 
 // bridgeConfig stores all the bridge driver specific