mirror of https://github.com/docker/docs.git
only pass stdin to hijack when needed
This commit is contained in:
parent
ff567f8729
commit
13c521526d
14
commands.go
14
commands.go
|
@ -590,16 +590,19 @@ func (cli *DockerCli) CmdStart(args ...string) error {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var in io.ReadCloser
|
||||||
|
|
||||||
v := url.Values{}
|
v := url.Values{}
|
||||||
v.Set("stream", "1")
|
v.Set("stream", "1")
|
||||||
if *openStdin && container.Config.OpenStdin {
|
if *openStdin && container.Config.OpenStdin {
|
||||||
v.Set("stdin", "1")
|
v.Set("stdin", "1")
|
||||||
|
in = cli.in
|
||||||
}
|
}
|
||||||
v.Set("stdout", "1")
|
v.Set("stdout", "1")
|
||||||
v.Set("stderr", "1")
|
v.Set("stderr", "1")
|
||||||
|
|
||||||
cErr = utils.Go(func() error {
|
cErr = utils.Go(func() error {
|
||||||
return cli.hijack("POST", "/containers/"+cmd.Arg(0)+"/attach?"+v.Encode(), container.Config.Tty, cli.in, cli.out, cli.err, nil)
|
return cli.hijack("POST", "/containers/"+cmd.Arg(0)+"/attach?"+v.Encode(), container.Config.Tty, in, cli.out, cli.err, nil)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1340,10 +1343,13 @@ func (cli *DockerCli) CmdAttach(args ...string) error {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var in io.ReadCloser
|
||||||
|
|
||||||
v := url.Values{}
|
v := url.Values{}
|
||||||
v.Set("stream", "1")
|
v.Set("stream", "1")
|
||||||
if !*noStdin && container.Config.OpenStdin {
|
if !*noStdin && container.Config.OpenStdin {
|
||||||
v.Set("stdin", "1")
|
v.Set("stdin", "1")
|
||||||
|
in = cli.in
|
||||||
}
|
}
|
||||||
v.Set("stdout", "1")
|
v.Set("stdout", "1")
|
||||||
v.Set("stderr", "1")
|
v.Set("stderr", "1")
|
||||||
|
@ -1352,7 +1358,7 @@ func (cli *DockerCli) CmdAttach(args ...string) error {
|
||||||
cli.forwardAllSignals(cmd.Arg(0))
|
cli.forwardAllSignals(cmd.Arg(0))
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := cli.hijack("POST", "/containers/"+cmd.Arg(0)+"/attach?"+v.Encode(), container.Config.Tty, cli.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
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
@ -1621,9 +1627,11 @@ func (cli *DockerCli) CmdRun(args ...string) error {
|
||||||
v := url.Values{}
|
v := url.Values{}
|
||||||
v.Set("stream", "1")
|
v.Set("stream", "1")
|
||||||
var out, stderr io.Writer
|
var out, stderr io.Writer
|
||||||
|
var in io.ReadCloser
|
||||||
|
|
||||||
if config.AttachStdin {
|
if config.AttachStdin {
|
||||||
v.Set("stdin", "1")
|
v.Set("stdin", "1")
|
||||||
|
in = cli.in
|
||||||
}
|
}
|
||||||
if config.AttachStdout {
|
if config.AttachStdout {
|
||||||
v.Set("stdout", "1")
|
v.Set("stdout", "1")
|
||||||
|
@ -1639,7 +1647,7 @@ func (cli *DockerCli) CmdRun(args ...string) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
errCh = utils.Go(func() error {
|
errCh = utils.Go(func() error {
|
||||||
return cli.hijack("POST", "/containers/"+runResult.ID+"/attach?"+v.Encode(), config.Tty, cli.in, out, stderr, hijacked)
|
return cli.hijack("POST", "/containers/"+runResult.ID+"/attach?"+v.Encode(), config.Tty, in, out, stderr, hijacked)
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
close(hijacked)
|
close(hijacked)
|
||||||
|
|
Loading…
Reference in New Issue