mirror of https://github.com/docker/cli.git
Merge pull request #1715 from AkihiroSuda/fix-bastion
commandconn: set SysProcAttr.Setsid (Fix DOCKER_HOST=ssh://host-behind-bastion)
This commit is contained in:
commit
8ca1f0bb7d
|
@ -41,7 +41,9 @@ func New(ctx context.Context, cmd string, args ...string) (net.Conn, error) {
|
||||||
// we assume that args never contains sensitive information
|
// we assume that args never contains sensitive information
|
||||||
logrus.Debugf("commandconn: starting %s with %v", cmd, args)
|
logrus.Debugf("commandconn: starting %s with %v", cmd, args)
|
||||||
c.cmd.Env = os.Environ()
|
c.cmd.Env = os.Environ()
|
||||||
|
c.cmd.SysProcAttr = &syscall.SysProcAttr{}
|
||||||
setPdeathsig(c.cmd)
|
setPdeathsig(c.cmd)
|
||||||
|
createSession(c.cmd)
|
||||||
c.stdin, err = c.cmd.StdinPipe()
|
c.stdin, err = c.cmd.StdinPipe()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|
|
@ -6,7 +6,5 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func setPdeathsig(cmd *exec.Cmd) {
|
func setPdeathsig(cmd *exec.Cmd) {
|
||||||
cmd.SysProcAttr = &syscall.SysProcAttr{
|
cmd.SysProcAttr.Pdeathsig = syscall.SIGKILL
|
||||||
Pdeathsig: syscall.SIGKILL,
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
// +build !windows
|
||||||
|
|
||||||
|
package commandconn
|
||||||
|
|
||||||
|
import (
|
||||||
|
"os/exec"
|
||||||
|
)
|
||||||
|
|
||||||
|
func createSession(cmd *exec.Cmd) {
|
||||||
|
// for supporting ssh connection helper with ProxyCommand
|
||||||
|
// https://github.com/docker/cli/issues/1707
|
||||||
|
cmd.SysProcAttr.Setsid = true
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
package commandconn
|
||||||
|
|
||||||
|
import (
|
||||||
|
"os/exec"
|
||||||
|
)
|
||||||
|
|
||||||
|
func createSession(cmd *exec.Cmd) {
|
||||||
|
}
|
Loading…
Reference in New Issue