mirror of https://github.com/docker/docs.git
Merge pull request #4927 from crosbymichael/start-hang
Make sure to set error reguardless of attach or stdin
This commit is contained in:
commit
5b98b70f29
|
@ -607,8 +607,8 @@ func (cli *DockerCli) CmdStart(args ...string) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if !*attach || !*openStdin {
|
if !*attach || !*openStdin {
|
||||||
fmt.Fprintf(cli.err, "%s\n", err)
|
fmt.Fprintf(cli.err, "%s\n", err)
|
||||||
encounteredError = fmt.Errorf("Error: failed to start one or more containers")
|
|
||||||
}
|
}
|
||||||
|
encounteredError = fmt.Errorf("Error: failed to start one or more containers")
|
||||||
} else {
|
} else {
|
||||||
if !*attach || !*openStdin {
|
if !*attach || !*openStdin {
|
||||||
fmt.Fprintf(cli.out, "%s\n", name)
|
fmt.Fprintf(cli.out, "%s\n", name)
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"os/exec"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Regression test for #3364
|
||||||
|
func TestDockerStartWithPortCollision(t *testing.T) {
|
||||||
|
runCmd := exec.Command(dockerBinary, "run", "--name", "fail", "-p", "25:25", "busybox", "true")
|
||||||
|
out, stderr, exitCode, err := runCommandWithStdoutStderr(runCmd)
|
||||||
|
if err != nil && exitCode != 0 {
|
||||||
|
t.Fatal(out, stderr, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
runCmd = exec.Command(dockerBinary, "run", "--name", "conflict", "-dti", "-p", "25:25", "busybox", "sh")
|
||||||
|
out, stderr, exitCode, err = runCommandWithStdoutStderr(runCmd)
|
||||||
|
if err != nil && exitCode != 0 {
|
||||||
|
t.Fatal(out, stderr, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
startCmd := exec.Command(dockerBinary, "start", "-a", "fail")
|
||||||
|
out, stderr, exitCode, err = runCommandWithStdoutStderr(startCmd)
|
||||||
|
if err != nil && exitCode != 1 {
|
||||||
|
t.Fatal(out, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
killCmd := exec.Command(dockerBinary, "kill", "conflict")
|
||||||
|
runCommand(killCmd)
|
||||||
|
|
||||||
|
deleteAllContainers()
|
||||||
|
|
||||||
|
logDone("start - -a=true error on port use")
|
||||||
|
}
|
Loading…
Reference in New Issue