Kaynağa Gözat

Merge remote-tracking branch 'origin/change_run_detach_behavious_tty_mode'

Solomon Hykes 12 yıl önce
ebeveyn
işleme
1716fccbcc
2 değiştirilmiş dosya ile 8 ekleme ve 13 silme
  1. 7 9
      commands_test.go
  2. 1 4
      container.go

+ 7 - 9
commands_test.go

@@ -228,15 +228,13 @@ func TestRunDisconnectTty(t *testing.T) {
 		<-c1
 	})
 
-	// Client disconnect after run -i should cause stdin to be closed, which should
-	// cause /bin/cat to exit.
-	setTimeout(t, "Waiting for /bin/cat to exit timed out", 2*time.Second, func() {
-		container := runtime.List()[0]
-		container.Wait()
-		if container.State.Running {
-			t.Fatalf("/bin/cat is still running after closing stdin")
-		}
-	})
+	// Client disconnect after run -i should keep stdin out in TTY mode
+	container := runtime.List()[0]
+	// Give some time to monitor to do his thing
+	container.WaitTimeout(500 * time.Millisecond)
+	if !container.State.Running {
+		t.Fatalf("/bin/cat should  still be running after closing stdin (tty mode)")
+	}
 }
 
 // TestAttachStdin checks attaching to stdin without stdout and stderr.

+ 1 - 4
container.go

@@ -252,10 +252,7 @@ func (container *Container) Attach(stdin io.ReadCloser, stdinCloser io.Closer, s
 				if cStderr != nil {
 					defer cStderr.Close()
 				}
-				if container.Config.StdinOnce {
-					if container.Config.Tty {
-						defer container.Kill()
-					}
+				if container.Config.StdinOnce && !container.Config.Tty {
 					defer cStdin.Close()
 				}
 				_, err := io.Copy(cStdin, stdin)