From a3c4ab9b657018cf6fc33e70a44c790563c16043 Mon Sep 17 00:00:00 2001 From: John Howard Date: Mon, 14 Nov 2016 14:01:16 -0800 Subject: [PATCH] Windows: Allow user in builder Signed-off-by: John Howard --- builder/dockerfile/evaluator_windows.go | 2 +- integration-cli/docker_cli_build_test.go | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/builder/dockerfile/evaluator_windows.go b/builder/dockerfile/evaluator_windows.go index 43a0b70be7..72483a2ec8 100644 --- a/builder/dockerfile/evaluator_windows.go +++ b/builder/dockerfile/evaluator_windows.go @@ -6,7 +6,7 @@ import "fmt" // a command not supported on the platform. func platformSupports(command string) error { switch command { - case "user", "stopsignal": + case "stopsignal": return fmt.Errorf("The daemon on this platform does not support the command '%s'", command) } return nil diff --git a/integration-cli/docker_cli_build_test.go b/integration-cli/docker_cli_build_test.go index 85a7d360c1..bab83ad251 100644 --- a/integration-cli/docker_cli_build_test.go +++ b/integration-cli/docker_cli_build_test.go @@ -7287,3 +7287,20 @@ func (s *DockerSuite) TestBuildOpaqueDirectory(c *check.C) { _, err := buildImage("testopaquedirectory", dockerFile, false) c.Assert(err, checker.IsNil) } + +// Windows test for USER in dockerfile +func (s *DockerSuite) TestBuildWindowsUser(c *check.C) { + testRequires(c, DaemonIsWindows) + name := "testbuildwindowsuser" + _, out, err := buildImageWithOut(name, + `FROM `+WindowsBaseImage+` + RUN net user user /add + USER user + RUN set username + `, + true) + if err != nil { + c.Fatal(err) + } + c.Assert(strings.ToLower(out), checker.Contains, "username=user") +}