diff --git a/docker/models/containers.py b/docker/models/containers.py index 9644b002..42c9d556 100644 --- a/docker/models/containers.py +++ b/docker/models/containers.py @@ -152,7 +152,8 @@ class Container(Model): Returns: (tuple): A tuple of (exit_code, output) exit_code: (int): - Exit code for the executed command + Exit code for the executed command or ``None`` if + either ``stream```or ``socket`` is ``True``. output: (generator or str): If ``stream=True``, a generator yielding response chunks. If ``socket=True``, a socket object for the connection. @@ -170,10 +171,11 @@ class Container(Model): exec_output = self.client.api.exec_start( resp['Id'], detach=detach, tty=tty, stream=stream, socket=socket ) - exit_code = 0 - if stream is False: - exit_code = self.client.api.exec_inspect(resp['Id'])['ExitCode'] - return (exit_code, exec_output) + if socket or stream: + return None, exec_output + else: + return (self.client.api.exec_inspect(resp['Id'])['ExitCode'], + exec_output) def export(self): """