From bd144a64f652895a41b67464a426839ef79d73dc Mon Sep 17 00:00:00 2001 From: "Guillaume J. Charmes" Date: Thu, 27 Jun 2013 12:48:25 -0700 Subject: [PATCH] Make sure the ID is displayed usgin run -d --- commands.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/commands.go b/commands.go index 7175c07b0b..230e2997bc 100644 --- a/commands.go +++ b/commands.go @@ -1278,9 +1278,15 @@ func (cli *DockerCli) CmdRun(args ...string) error { return err } + var wait chan struct{} + if !config.AttachStdout && !config.AttachStderr { // Make this asynchrone in order to let the client write to stdin before having to read the ID - go fmt.Fprintf(cli.out, "%s\n", runResult.ID) + wait = make(chan struct{}) + go func() { + defer close(wait) + fmt.Fprintf(cli.out, "%s\n", runResult.ID) + }() } if config.AttachStdin || config.AttachStdout || config.AttachStderr { @@ -1309,6 +1315,10 @@ func (cli *DockerCli) CmdRun(args ...string) error { return err } } + + if !config.AttachStdout && !config.AttachStderr { + <-wait + } return nil }