1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00

Inherit Cmd only if no --entrypoint specified on run

Fixes #5147
Docker-DCO-1.1-Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com> (github: LK4D4)
This commit is contained in:
Alexandr Morozov 2014-07-10 09:46:11 +04:00 committed by LK4D4
parent 1b6546b840
commit aa2d6dbc0c
3 changed files with 32 additions and 5 deletions

View file

@ -71,7 +71,7 @@ type buildFile struct {
outOld io.Writer
sf *utils.StreamFormatter
// cmdSet indicates is CMD was setted in current Dockerfile
// cmdSet indicates is CMD was set in current Dockerfile
cmdSet bool
}
@ -202,7 +202,8 @@ func (b *buildFile) CmdRun(args string) error {
}
cmd := b.config.Cmd
b.config.Cmd = nil
// set Cmd manually, this is special case only for Dockerfiles
b.config.Cmd = config.Cmd
runconfig.Merge(b.config, config)
defer func(cmd []string) { b.config.Cmd = cmd }(cmd)

View file

@ -1454,3 +1454,29 @@ func TestCopyVolumeContent(t *testing.T) {
t.Fatal("Container failed to transfer content to volume")
}
}
func TestRunCleanupCmdOnEntrypoint(t *testing.T) {
name := "testrunmdcleanuponentrypoint"
defer deleteImages(name)
defer deleteAllContainers()
if _, err := buildImage(name,
`FROM busybox
ENTRYPOINT ["echo"]
CMD ["testingpoint"]`,
true); err != nil {
t.Fatal(err)
}
runCmd := exec.Command(dockerBinary, "run", "--entrypoint", "whoami", name)
out, exit, err := runCommandWithOutput(runCmd)
if err != nil {
t.Fatalf("Error: %v, out: %q", err, out)
}
if exit != 0 {
t.Fatalf("expected exit code 0 received %d, out: %q", exit, out)
}
out = strings.TrimSpace(out)
if out != "root" {
t.Fatalf("Expected output root, got %q", out)
}
logDone("run - cleanup cmd on --entrypoint")
}

View file

@ -84,10 +84,10 @@ func Merge(userConf, imageConf *Config) error {
}
}
if len(userConf.Cmd) == 0 {
userConf.Cmd = imageConf.Cmd
}
if len(userConf.Entrypoint) == 0 {
if len(userConf.Cmd) == 0 {
userConf.Cmd = imageConf.Cmd
}
userConf.Entrypoint = imageConf.Entrypoint
}
if userConf.WorkingDir == "" {