Ver Fonte

Merge pull request #31674 from dperny/service-logs-err-on-tty

Error on attempting services logs on TTY container
Aaron Lehmann há 8 anos atrás
pai
commit
47615d9871

+ 6 - 0
daemon/cluster/executor/container/adapter.go

@@ -397,6 +397,12 @@ func (c *containerAdapter) deactivateServiceBinding() error {
 }
 
 func (c *containerAdapter) logs(ctx context.Context, options api.LogSubscriptionOptions) (io.ReadCloser, error) {
+	// we can't handle the peculiarities of a TTY-attached container yet
+	conf := c.container.config()
+	if conf != nil && conf.Tty {
+		return nil, errors.New("logs not supported on containers with a TTY attached")
+	}
+
 	reader, writer := io.Pipe()
 
 	apiOptions := &backend.ContainerLogsConfig{

+ 7 - 0
daemon/cluster/services.go

@@ -262,6 +262,13 @@ func (c *Cluster) ServiceLogs(ctx context.Context, input string, config *backend
 		c.mu.RUnlock()
 		return err
 	}
+	container := service.Spec.Task.GetContainer()
+	if container == nil {
+		return errors.New("service logs only supported for container tasks")
+	}
+	if container.TTY {
+		return errors.New("service logs not supported on tasks with a TTY attached")
+	}
 
 	// set the streams we'll use
 	stdStreams := []swarmapi.LogStream{}