浏览代码

Raise a more relevant error when dockerd is not available on the platform.

Signed-off-by: Daniel Nephin <dnephin@docker.com>
Daniel Nephin 9 年之前
父节点
当前提交
8983d42988
共有 5 个文件被更改,包括 15 次插入4 次删除
  1. 6 1
      cmd/docker/daemon_none.go
  2. 3 1
      cmd/docker/daemon_none_test.go
  3. 1 1
      cmd/docker/daemon_unix.go
  4. 1 0
      hack/make.sh
  5. 4 1
      hack/make/cross

+ 6 - 1
cmd/docker/daemon_windows.go → cmd/docker/daemon_none.go

@@ -1,11 +1,16 @@
+// +build !daemon
+
 package main
 
 import (
 	"fmt"
+	"runtime"
+	"strings"
 )
 
 // CmdDaemon reports on an error on windows, because there is no exec
 func (p DaemonProxy) CmdDaemon(args ...string) error {
 	return fmt.Errorf(
-		"`docker daemon` does not exist on windows. Please run `dockerd` directly")
+		"`docker daemon` is not supported on %s. Please run `dockerd` directly",
+		strings.Title(runtime.GOOS))
 }

+ 3 - 1
cmd/docker/daemon_windows_test.go → cmd/docker/daemon_none_test.go

@@ -1,3 +1,5 @@
+// +build !daemon
+
 package main
 
 import (
@@ -9,7 +11,7 @@ func TestCmdDaemon(t *testing.T) {
 	proxy := NewDaemonProxy()
 	err := proxy.CmdDaemon("--help")
 	if err == nil {
-		t.Fatal("Expected CmdDaemon to fail in Windows.")
+		t.Fatal("Expected CmdDaemon to fail on Windows.")
 	}
 
 	if !strings.Contains(err.Error(), "Please run `dockerd`") {

+ 1 - 1
cmd/docker/daemon_unix.go

@@ -1,4 +1,4 @@
-// +build !windows
+// +build daemon
 
 package main
 

+ 1 - 0
hack/make.sh

@@ -127,6 +127,7 @@ if [ "$DOCKER_EXPERIMENTAL" ]; then
 	DOCKER_BUILDTAGS+=" experimental"
 fi
 
+DOCKER_BUILDTAGS+=" daemon"
 if pkg-config 'libsystemd >= 209' 2> /dev/null ; then
 	DOCKER_BUILDTAGS+=" journald"
 elif pkg-config 'libsystemd-journal' 2> /dev/null ; then

+ 4 - 1
hack/make/cross

@@ -35,7 +35,10 @@ for platform in $DOCKER_CROSSPLATFORMS; do
 		fi
 
 		if [ -z "${daemonSupporting[$platform]}" ]; then
-			export LDFLAGS_STATIC_DOCKER="" # we just need a simple client for these platforms
+            # we just need a simple client for these platforms
+			export LDFLAGS_STATIC_DOCKER=""
+            # remove the "daemon" build tag from platforms that aren't supported
+            export BUILDFLAGS=( "${ORIG_BUILDFLAGS[@]/ daemon/}" )
 		    source "${MAKEDIR}/binary-client"
         else
 		    source "${MAKEDIR}/binary-client"