mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Windows: Support ARG in builder
Signed-off-by: John Howard <jhoward@microsoft.com>
This commit is contained in:
parent
973d6f0820
commit
6b5c83bf18
3 changed files with 23 additions and 11 deletions
|
@ -6,7 +6,7 @@ import "fmt"
|
|||
// a command not supported on the platform.
|
||||
func platformSupports(command string) error {
|
||||
switch command {
|
||||
case "user", "stopsignal", "arg":
|
||||
case "user", "stopsignal":
|
||||
return fmt.Errorf("The daemon on this platform does not support the command '%s'", command)
|
||||
}
|
||||
return nil
|
||||
|
|
|
@ -7,6 +7,7 @@ import (
|
|||
"os"
|
||||
"path/filepath"
|
||||
|
||||
"github.com/docker/docker/utils"
|
||||
"github.com/docker/docker/volume"
|
||||
containertypes "github.com/docker/engine-api/types/container"
|
||||
)
|
||||
|
@ -30,8 +31,10 @@ type ExitStatus struct {
|
|||
|
||||
// CreateDaemonEnvironment creates a new environment variable slice for this container.
|
||||
func (container *Container) CreateDaemonEnvironment(linkedEnv []string) []string {
|
||||
// On Windows, nothing to link. Just return the container environment.
|
||||
return container.Config.Env
|
||||
// because the env on the container can override certain default values
|
||||
// we need to replace the 'env' keys where they match and append anything
|
||||
// else.
|
||||
return utils.ReplaceOrAppendEnvValues(linkedEnv, container.Config.Env)
|
||||
}
|
||||
|
||||
// UnmountIpcMounts unmount Ipc related mounts.
|
||||
|
|
|
@ -6171,17 +6171,24 @@ func (s *DockerSuite) TestBuildStopSignal(c *check.C) {
|
|||
}
|
||||
|
||||
func (s *DockerSuite) TestBuildBuildTimeArg(c *check.C) {
|
||||
testRequires(c, DaemonIsLinux) // Windows does not support ARG
|
||||
imgName := "bldargtest"
|
||||
envKey := "foo"
|
||||
envVal := "bar"
|
||||
args := []string{
|
||||
"--build-arg", fmt.Sprintf("%s=%s", envKey, envVal),
|
||||
args := []string{"--build-arg", fmt.Sprintf("%s=%s", envKey, envVal)}
|
||||
var dockerfile string
|
||||
if daemonPlatform == "windows" {
|
||||
// Bugs in Windows busybox port - use the default base image and native cmd stuff
|
||||
dockerfile = fmt.Sprintf(`FROM `+minimalBaseImage()+`
|
||||
ARG %s
|
||||
RUN echo %%%s%%
|
||||
CMD setlocal enableextensions && if defined %s (echo %%%s%%)`, envKey, envKey, envKey, envKey)
|
||||
} else {
|
||||
dockerfile = fmt.Sprintf(`FROM busybox
|
||||
ARG %s
|
||||
RUN echo $%s
|
||||
CMD echo $%s`, envKey, envKey, envKey)
|
||||
|
||||
}
|
||||
dockerfile := fmt.Sprintf(`FROM busybox
|
||||
ARG %s
|
||||
RUN echo $%s
|
||||
CMD echo $%s`, envKey, envKey, envKey)
|
||||
|
||||
if _, out, err := buildImageWithOut(imgName, dockerfile, true, args...); err != nil || !strings.Contains(out, envVal) {
|
||||
if err != nil {
|
||||
|
@ -6191,7 +6198,9 @@ func (s *DockerSuite) TestBuildBuildTimeArg(c *check.C) {
|
|||
}
|
||||
|
||||
containerName := "bldargCont"
|
||||
if out, _ := dockerCmd(c, "run", "--name", containerName, imgName); out != "\n" {
|
||||
out, _ := dockerCmd(c, "run", "--name", containerName, imgName)
|
||||
out = strings.Trim(out, " \r\n'")
|
||||
if out != "" {
|
||||
c.Fatalf("run produced invalid output: %q, expected empty string", out)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue