瀏覽代碼

Return process exit code for attach

Fixes #2240
Michael Crosby 11 年之前
父節點
當前提交
1fe1b216ad
共有 2 個文件被更改,包括 11 次插入1 次删除
  1. 9 0
      commands.go
  2. 2 1
      docs/sources/commandline/cli.rst

+ 9 - 0
commands.go

@@ -1578,6 +1578,15 @@ func (cli *DockerCli) CmdAttach(args ...string) error {
 	if err := cli.hijack("POST", "/containers/"+cmd.Arg(0)+"/attach?"+v.Encode(), container.Config.Tty, in, cli.out, cli.err, nil); err != nil {
 	if err := cli.hijack("POST", "/containers/"+cmd.Arg(0)+"/attach?"+v.Encode(), container.Config.Tty, in, cli.out, cli.err, nil); err != nil {
 		return err
 		return err
 	}
 	}
+
+	_, status, err := getExitCode(cli, cmd.Arg(0))
+	if err != nil {
+		return err
+	}
+	if status != 0 {
+		return &utils.StatusError{Status: status}
+	}
+
 	return nil
 	return nil
 }
 }
 
 

+ 2 - 1
docs/sources/commandline/cli.rst

@@ -66,7 +66,8 @@ To run the daemon with debug output, use ``docker -d -D``
 
 
 You can detach from the container again (and leave it running) with
 You can detach from the container again (and leave it running) with
 ``CTRL-c`` (for a quiet exit) or ``CTRL-\`` to get a stacktrace of
 ``CTRL-c`` (for a quiet exit) or ``CTRL-\`` to get a stacktrace of
-the Docker client when it quits.
+the Docker client when it quits.  When you detach from the container's 
+process the exit code will be retuned to the client.
 
 
 To stop a container, use ``docker stop``
 To stop a container, use ``docker stop``