evaluator: ensure entrypoint stays blank if set blank while CMD is set.

Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
Upstream-commit: 78a847a47ac777f4090c06a82e875ee30f9a1cbd
Component: engine
This commit is contained in:
Erik Hollensbe
2014-09-11 06:00:24 -07:00
parent 76991d395e
commit b3a58e1095
2 changed files with 21 additions and 4 deletions
+2 -4
View File
@@ -255,11 +255,9 @@ func cmd(b *Builder, args []string, attributes map[string]bool) error {
func entrypoint(b *Builder, args []string, attributes map[string]bool) error {
b.Config.Entrypoint = handleJsonArgs(args, attributes)
if len(b.Config.Entrypoint) == 0 {
if len(b.Config.Entrypoint) == 0 && len(b.Config.Cmd) == 0 {
b.Config.Entrypoint = []string{"/bin/sh", "-c"}
}
if !b.cmdSet {
} else if !b.cmdSet {
b.Config.Cmd = nil
}
@@ -791,6 +791,25 @@ func TestBuildEntrypoint(t *testing.T) {
if res != expected {
t.Fatalf("Entrypoint %s, expected %s", res, expected)
}
deleteImages(name)
expected = "[]"
_, err = buildImage(name,
`FROM busybox
ENTRYPOINT []`,
true)
if err != nil {
t.Fatal(err)
}
res, err = inspectField(name, "Config.Entrypoint")
if err != nil {
t.Fatal(err)
}
if res != expected {
t.Fatalf("Entrypoint %s, expected %s", res, expected)
}
logDone("build - entrypoint")
}