mirror of https://github.com/docker/docs.git
docker wait: block until a container exits, and print its exit code
This commit is contained in:
parent
8fa07c0e06
commit
ebaa50c4c9
|
@ -415,11 +415,13 @@ func (container *Container) Restart() error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (container *Container) Wait() {
|
// Wait blocks until the container stops running, then returns its exit code.
|
||||||
|
func (container *Container) Wait() int {
|
||||||
|
|
||||||
for container.State.Running {
|
for container.State.Running {
|
||||||
container.State.wait()
|
container.State.wait()
|
||||||
}
|
}
|
||||||
|
return container.State.ExitCode
|
||||||
}
|
}
|
||||||
|
|
||||||
func (container *Container) WaitTimeout(timeout time.Duration) error {
|
func (container *Container) WaitTimeout(timeout time.Duration) error {
|
||||||
|
|
|
@ -53,6 +53,7 @@ func (srv *Server) Help() string {
|
||||||
{"diff", "Inspect changes on a container's filesystem"},
|
{"diff", "Inspect changes on a container's filesystem"},
|
||||||
{"commit", "Save the state of a container"},
|
{"commit", "Save the state of a container"},
|
||||||
{"attach", "Attach to the standard inputs and outputs of a running container"},
|
{"attach", "Attach to the standard inputs and outputs of a running container"},
|
||||||
|
{"wait", "Block until a container exits, then print its exit code"},
|
||||||
{"info", "Display system-wide information"},
|
{"info", "Display system-wide information"},
|
||||||
{"tar", "Stream the contents of a container as a tar archive"},
|
{"tar", "Stream the contents of a container as a tar archive"},
|
||||||
{"web", "Generate a web UI"},
|
{"web", "Generate a web UI"},
|
||||||
|
@ -63,6 +64,27 @@ func (srv *Server) Help() string {
|
||||||
return help
|
return help
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 'docker wait': block until a container stops
|
||||||
|
func (srv *Server) CmdWait(stdin io.ReadCloser, stdout io.Writer, args ...string) error {
|
||||||
|
cmd := rcli.Subcmd(stdout, "wait", "[OPTIONS] NAME", "Block until a container stops, then print its exit code.")
|
||||||
|
if err := cmd.Parse(args); err != nil {
|
||||||
|
cmd.Usage()
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
if cmd.NArg() < 1 {
|
||||||
|
cmd.Usage()
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
for _, name := range cmd.Args() {
|
||||||
|
if container := srv.containers.Get(name); container != nil {
|
||||||
|
fmt.Fprintln(stdout, container.Wait())
|
||||||
|
} else {
|
||||||
|
return errors.New("No such container: " + name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// 'docker info': display system-wide information.
|
// 'docker info': display system-wide information.
|
||||||
func (srv *Server) CmdInfo(stdin io.ReadCloser, stdout io.Writer, args ...string) error {
|
func (srv *Server) CmdInfo(stdin io.ReadCloser, stdout io.Writer, args ...string) error {
|
||||||
fmt.Fprintf(stdout, "containers: %d\nversion: %s\nimages: %d\n",
|
fmt.Fprintf(stdout, "containers: %d\nversion: %s\nimages: %d\n",
|
||||||
|
|
Loading…
Reference in New Issue