Merge pull request #3708 from creack/fix_run_exit_code

Fix issue with exit code in non-tty mode.
This commit is contained in:
Michael Crosby 2014-01-21 18:15:01 -08:00
Родитель 4c1879f919 fd38de2818
Коммит 3cb5bc5ae5
1 изменённых файлов: 12 добавлений и 3 удалений

Просмотреть файл

@ -2168,11 +2168,20 @@ func (cli *DockerCli) CmdRun(args ...string) error {
return err
}
} else {
if !config.Tty {
// In non-tty mode, we can't dettach, so we know we need to wait.
if status, err = waitForExit(cli, runResult.ID); err != nil {
return err
}
} else {
// In TTY mode, there is a race. If the process dies too slowly, the state can be update after the getExitCode call
// and result in a wrong exit code.
// No Autoremove: Simply retrieve the exit code
if _, status, err = getExitCode(cli, runResult.ID); err != nil {
return err
}
}
}
if status != 0 {
return &utils.StatusError{StatusCode: status}
}