Sfoglia il codice sorgente

Enable sig-proxy by default in run and attach

Victor Vieux 11 anni fa
parent
commit
e0b59ab52b
3 ha cambiato i file con 7 aggiunte e 8 eliminazioni
  1. 4 1
      commands.go
  2. 1 5
      container.go
  3. 2 2
      docs/sources/commandline/cli.rst

+ 4 - 1
commands.go

@@ -1324,7 +1324,7 @@ func (cli *DockerCli) CmdLogs(args ...string) error {
 func (cli *DockerCli) CmdAttach(args ...string) error {
 	cmd := Subcmd("attach", "[OPTIONS] CONTAINER", "Attach to a running container")
 	noStdin := cmd.Bool("nostdin", false, "Do not attach stdin")
-	proxy := cmd.Bool("sig-proxy", false, "Proxify all received signal to the process (even in non-tty mode)")
+	proxy := cmd.Bool("sig-proxy", true, "Proxify all received signal to the process (even in non-tty mode)")
 	if err := cmd.Parse(args); err != nil {
 		return nil
 	}
@@ -1523,6 +1523,9 @@ func (cli *DockerCli) CmdRun(args ...string) error {
 	flSigProxy := cmd.Lookup("sig-proxy")
 	sigProxy, _ := strconv.ParseBool(flSigProxy.Value.String())
 	flName := cmd.Lookup("name")
+	if config.Tty {
+		sigProxy = false
+	}
 
 	var containerIDFile *os.File
 	if len(hostConfig.ContainerIDFile) > 0 {

+ 1 - 5
container.go

@@ -109,7 +109,6 @@ var (
 	ErrContainerStart           = errors.New("The container failed to start. Unkown error")
 	ErrContainerStartTimeout    = errors.New("The container failed to start due to timed out.")
 	ErrInvalidWorikingDirectory = errors.New("The working directory is invalid. It needs to be an absolute path.")
-	ErrConflictTtySigProxy      = errors.New("TTY mode (-t) already imply signal proxying (-sig-proxy)")
 	ErrConflictAttachDetach     = errors.New("Conflicting options: -a and -d")
 	ErrConflictDetachAutoRemove = errors.New("Conflicting options: -rm and -d")
 )
@@ -167,7 +166,7 @@ func ParseRun(args []string, capabilities *Capabilities) (*Config, *HostConfig,
 	flNetwork := cmd.Bool("n", true, "Enable networking for this container")
 	flPrivileged := cmd.Bool("privileged", false, "Give extended privileges to this container")
 	flAutoRemove := cmd.Bool("rm", false, "Automatically remove the container when it exits (incompatible with -d)")
-	flSigProxy := cmd.Bool("sig-proxy", false, "Proxify all received signal to the process (even in non-tty mode)")
+	cmd.Bool("sig-proxy", true, "Proxify all received signal to the process (even in non-tty mode)")
 	cmd.String("name", "", "Assign a name to the container")
 
 	if capabilities != nil && *flMemory > 0 && !capabilities.MemoryLimit {
@@ -212,9 +211,6 @@ func ParseRun(args []string, capabilities *Capabilities) (*Config, *HostConfig,
 	if *flWorkingDir != "" && !path.IsAbs(*flWorkingDir) {
 		return nil, nil, cmd, ErrInvalidWorikingDirectory
 	}
-	if *flTty && *flSigProxy {
-		return nil, nil, cmd, ErrConflictTtySigProxy
-	}
 	if *flDetach && *flAutoRemove {
 		return nil, nil, cmd, ErrConflictDetachAutoRemove
 	}

+ 2 - 2
docs/sources/commandline/cli.rst

@@ -30,7 +30,7 @@ To list available commands, either run ``docker`` with no parameters or execute
     Attach to a running container.
 
       -nostdin=false: Do not attach stdin
-      -sig-proxy=false: Proxify all received signal to the process (even in non-tty mode)
+      -sig-proxy=true: Proxify all received signal to the process (even in non-tty mode)
 
 You can detach from the container again (and leave it running) with
 ``CTRL-c`` (for a quiet exit) or ``CTRL-\`` to get a stacktrace of
@@ -575,7 +575,7 @@ network communication.
       -entrypoint="": Overwrite the default entrypoint set by the image
       -w="": Working directory inside the container
       -lxc-conf=[]: Add custom lxc options -lxc-conf="lxc.cgroup.cpuset.cpus = 0,1"
-      -sig-proxy=false: Proxify all received signal to the process (even in non-tty mode)
+      -sig-proxy=true: Proxify all received signal to the process (even in non-tty mode)
       -expose=[]: Expose a port from the container without publishing it to your host
       -link="": Add link to another container (name:alias)
       -name="": Assign the specified name to the container. If no name is specific docker will generate a random name