1
0
mirror of https://github.com/moby/moby.git synced 2025-12-24 13:21:20 +03:00

Merge pull request #8639 from erikh/fix_escapes

builder: fix escaping for ENV variables.
This commit is contained in:
Alexandr Morozov
2014-10-17 15:50:37 -07:00
2 changed files with 68 additions and 1 deletions

View File

@@ -15,6 +15,61 @@ import (
"github.com/docker/docker/pkg/archive"
)
func TestBuildEnvEscapes(t *testing.T) {
name := "testbuildenvescapes"
defer deleteAllContainers()
defer deleteImages(name)
_, err := buildImage(name,
`
FROM busybox
ENV TEST foo
CMD echo \$
`,
true)
out, _, err := runCommandWithOutput(exec.Command(dockerBinary, "run", "-t", name))
if err != nil {
t.Fatal(err)
}
if strings.TrimSpace(out) != "$" {
t.Fatalf("Env TEST was not overwritten with bar when foo was supplied to dockerfile: was %q", strings.TrimSpace(out))
}
logDone("build - env should handle \\$ properly")
}
func TestBuildEnvOverwrite(t *testing.T) {
name := "testbuildenvoverwrite"
defer deleteAllContainers()
defer deleteImages(name)
_, err := buildImage(name,
`
FROM busybox
ENV TEST foo
CMD echo \${TEST}
`,
true)
if err != nil {
t.Fatal(err)
}
out, _, err := runCommandWithOutput(exec.Command(dockerBinary, "run", "-e", "TEST=bar", "-t", name))
if err != nil {
t.Fatal(err)
}
if strings.TrimSpace(out) != "bar" {
t.Fatalf("Env TEST was not overwritten with bar when foo was supplied to dockerfile: was %q", strings.TrimSpace(out))
}
logDone("build - env should overwrite builder ENV during run")
}
func TestBuildOnBuildForbiddenMaintainerInSourceImage(t *testing.T) {
name := "testbuildonbuildforbiddenmaintainerinsourceimage"
defer deleteImages(name)