From 3e5e12bff0afb4ed8e343a3eb235696f0356cb59 Mon Sep 17 00:00:00 2001 From: Gerardo Moreno Date: Mon, 9 Dec 2024 19:09:54 -0800 Subject: [PATCH] Improve message error when docker isn't running (#3816) (#4600) Co-authored-by: Jack Gerrits --- .../code_executors/docker/_docker_code_executor.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/python/packages/autogen-ext/src/autogen_ext/code_executors/docker/_docker_code_executor.py b/python/packages/autogen-ext/src/autogen_ext/code_executors/docker/_docker_code_executor.py index 87dedaf829d7..fcc6a2bdca32 100644 --- a/python/packages/autogen-ext/src/autogen_ext/code_executors/docker/_docker_code_executor.py +++ b/python/packages/autogen-ext/src/autogen_ext/code_executors/docker/_docker_code_executor.py @@ -329,14 +329,21 @@ async def start(self) -> None: import asyncio_atexit import docker - from docker.errors import ImageNotFound + from docker.errors import DockerException, ImageNotFound except ImportError as e: raise RuntimeError( "Missing dependecies for DockerCommandLineCodeExecutor. Please ensure the autogen-ext package was installed with the 'docker' extra." ) from e # Start a container from the image, read to exec commands later - client = docker.from_env() + try: + client = docker.from_env() + except DockerException as e: + if "FileNotFoundError" in str(e): + raise RuntimeError("Failed to connect to Docker. Please ensure Docker is installed and running.") from e + raise + except Exception as e: + raise RuntimeError(f"Unexpected error while connecting to Docker: {str(e)}") from e # Check if the image exists try: