diff --git a/cli/command/container/run.go b/cli/command/container/run.go index fec9995841..27c267e551 100644 --- a/cli/command/container/run.go +++ b/cli/command/container/run.go @@ -214,32 +214,7 @@ func runContainer(dockerCli command.Cli, opts *runOptions, copts *containerOptio return nil } -func attachContainer( - ctx context.Context, - dockerCli command.Cli, - errCh *chan error, - config *container.Config, - containerID string, -) (func(), error) { - stdout, stderr := dockerCli.Out(), dockerCli.Err() - var ( - out, cerr io.Writer - in io.ReadCloser - ) - if config.AttachStdin { - in = dockerCli.In() - } - if config.AttachStdout { - out = stdout - } - if config.AttachStderr { - if config.Tty { - cerr = stdout - } else { - cerr = stderr - } - } - +func attachContainer(ctx context.Context, dockerCli command.Cli, errCh *chan error, config *container.Config, containerID string) (func(), error) { options := types.ContainerAttachOptions{ Stream: true, Stdin: config.AttachStdin, @@ -253,6 +228,24 @@ func attachContainer( return nil, errAttach } + var ( + out, cerr io.Writer + in io.ReadCloser + ) + if config.AttachStdin { + in = dockerCli.In() + } + if config.AttachStdout { + out = dockerCli.Out() + } + if config.AttachStderr { + if config.Tty { + cerr = dockerCli.Out() + } else { + cerr = dockerCli.Err() + } + } + ch := make(chan error, 1) *errCh = ch @@ -284,7 +277,7 @@ func reportError(stderr io.Writer, name string, str string, withHelp bool) { if withHelp { str += "\nSee 'docker " + name + " --help'." } - fmt.Fprintln(stderr, "docker:", str) + _, _ = fmt.Fprintln(stderr, "docker:", str) } // if container start fails with 'not found'/'no such' error, return 127