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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user