瀏覽代碼

Merge pull request #11397 from ahmetalpbalkan/win-cli/build-warning

Add cli build warning about chmod bits on windows
Doug Davis 10 年之前
父節點
當前提交
c536e5bfb4
共有 2 個文件被更改,包括 20 次插入2 次删除
  1. 7 0
      api/client/commands.go
  2. 13 2
      integration-cli/docker_cli_build_test.go

+ 7 - 0
api/client/commands.go

@@ -232,6 +232,13 @@ func (cli *DockerCli) CmdBuild(args ...string) error {
 			return err
 			return err
 		}
 		}
 	}
 	}
+
+	// windows: show error message about modified file permissions
+	// FIXME: this is not a valid warning when the daemon is running windows. should be removed once docker engine for windows can build.
+	if runtime.GOOS == "windows" {
+		log.Warn(`SECURITY WARNING: You are building a Docker image from Windows against a Linux Docker host. All files and directories added to build context will have '-rwxr-xr-x' permissions. It is recommended to double check and reset permissions for sensitive files and directories.`)
+	}
+
 	var body io.Reader
 	var body io.Reader
 	// Setup an upload progress bar
 	// Setup an upload progress bar
 	// FIXME: ProgressReader shouldn't be this annoying to use
 	// FIXME: ProgressReader shouldn't be this annoying to use

+ 13 - 2
integration-cli/docker_cli_build_test.go

@@ -4623,8 +4623,19 @@ func TestBuildStderr(t *testing.T) {
 	if err != nil {
 	if err != nil {
 		t.Fatal(err)
 		t.Fatal(err)
 	}
 	}
-	if stderr != "" {
-		t.Fatalf("Stderr should have been empty, instead its: %q", stderr)
+
+	if runtime.GOOS == "windows" {
+		// stderr might contain a security warning on windows
+		lines := strings.Split(stderr, "\n")
+		for _, v := range lines {
+			if v != "" && !strings.Contains(v, "SECURITY WARNING:") {
+				t.Fatalf("Stderr contains unexpected output line: %q", v)
+			}
+		}
+	} else {
+		if stderr != "" {
+			t.Fatalf("Stderr should have been empty, instead its: %q", stderr)
+		}
 	}
 	}
 	logDone("build - testing stderr")
 	logDone("build - testing stderr")
 }
 }