From 3a408aad616ad4f871f7ca66a43abe9fd06d698e Mon Sep 17 00:00:00 2001 From: msabansal Date: Wed, 30 Mar 2016 15:54:16 -0700 Subject: [PATCH] Enabling expose support for Windows TP5 Signed-off-by: msabansal Upstream-commit: 4982a732f34640217d05eee255905fcb12a7f939 Component: engine --- .../engine/builder/dockerfile/evaluator.go | 14 ---------- .../builder/dockerfile/evaluator_unix.go | 9 +++++++ .../builder/dockerfile/evaluator_windows.go | 26 +++++++++++++++++++ 3 files changed, 35 insertions(+), 14 deletions(-) create mode 100644 components/engine/builder/dockerfile/evaluator_unix.go create mode 100644 components/engine/builder/dockerfile/evaluator_windows.go diff --git a/components/engine/builder/dockerfile/evaluator.go b/components/engine/builder/dockerfile/evaluator.go index 270e3a4ffe..905675d0e0 100644 --- a/components/engine/builder/dockerfile/evaluator.go +++ b/components/engine/builder/dockerfile/evaluator.go @@ -21,7 +21,6 @@ package dockerfile import ( "fmt" - "runtime" "strings" "github.com/docker/docker/builder/dockerfile/command" @@ -200,16 +199,3 @@ func (b *Builder) dispatch(stepN int, ast *parser.Node) error { return fmt.Errorf("Unknown instruction: %s", upperCasedCmd) } - -// platformSupports is a short-term function to give users a quality error -// message if a Dockerfile uses a command not supported on the platform. -func platformSupports(command string) error { - if runtime.GOOS != "windows" { - return nil - } - switch command { - case "expose", "user", "stopsignal", "arg": - return fmt.Errorf("The daemon on this platform does not support the command '%s'", command) - } - return nil -} diff --git a/components/engine/builder/dockerfile/evaluator_unix.go b/components/engine/builder/dockerfile/evaluator_unix.go new file mode 100644 index 0000000000..28fd5b156b --- /dev/null +++ b/components/engine/builder/dockerfile/evaluator_unix.go @@ -0,0 +1,9 @@ +// +build !windows + +package dockerfile + +// platformSupports is a short-term function to give users a quality error +// message if a Dockerfile uses a command not supported on the platform. +func platformSupports(command string) error { + return nil +} diff --git a/components/engine/builder/dockerfile/evaluator_windows.go b/components/engine/builder/dockerfile/evaluator_windows.go new file mode 100644 index 0000000000..d79dd62980 --- /dev/null +++ b/components/engine/builder/dockerfile/evaluator_windows.go @@ -0,0 +1,26 @@ +// +build windows + +package dockerfile + +import ( + "fmt" + + "github.com/Microsoft/hcsshim" +) + +// platformSupports is a short-term function to give users a quality error +// message if a Dockerfile uses a command not supported on the platform. +func platformSupports(command string) error { + switch command { + // TODO Windows TP5. Expose can be removed from here once TP4 is + // no longer supported. + case "expose": + if !hcsshim.IsTP4() { + break + } + fallthrough + case "user", "stopsignal", "arg": + return fmt.Errorf("The daemon on this platform does not support the command '%s'", command) + } + return nil +}