11import docker
22import os
3+ import platform
34import sys
45from docker .errors import DockerException , ImageNotFound
56import logging
1213PYTHON_BUILD_CONTEXT = "magentic-ui-python-env"
1314
1415
16+ def get_docker_client () -> docker .DockerClient :
17+ if platform .system () == "Windows" :
18+ return docker .DockerClient (base_url = 'npipe:////./pipe/dockerDesktopLinuxEngine' )
19+ return docker .from_env ()
20+
21+
1522def check_docker_running () -> bool :
1623 try :
17- client = docker . from_env ()
24+ client = get_docker_client ()
1825 client .ping () # type: ignore
1926 return True
2027 except (DockerException , ConnectionError ):
@@ -49,8 +56,8 @@ def check_docker_image(image_name: str, client: docker.DockerClient) -> bool:
4956
5057def build_browser_image (client : docker .DockerClient | None = None ) -> None :
5158 if client is None :
52- client = docker . from_env ()
53- client = docker . from_env ()
59+ client = get_docker_client ()
60+ client = get_docker_client ()
5461 build_image (
5562 VNC_BROWSER_IMAGE + ":latest" ,
5663 os .path .join (_PACKAGE_DIR , "docker" , VNC_BROWSER_BUILD_CONTEXT ),
@@ -60,8 +67,8 @@ def build_browser_image(client: docker.DockerClient | None = None) -> None:
6067
6168def build_python_image (client : docker .DockerClient | None = None ) -> None :
6269 if client is None :
63- client = docker . from_env ()
64- client = docker . from_env ()
70+ client = get_docker_client ()
71+ client = get_docker_client ()
6572 build_image (
6673 PYTHON_IMAGE + ":latest" ,
6774 os .path .join (_PACKAGE_DIR , "docker" , PYTHON_BUILD_CONTEXT ),
@@ -85,15 +92,15 @@ def check_browser_image(client: docker.DockerClient | None = None) -> bool:
8592 if not check_docker_access ():
8693 return False
8794 if client is None :
88- client = docker . from_env ()
89- client = docker . from_env ()
95+ client = get_docker_client ()
96+ client = get_docker_client ()
9097 return check_docker_image (VNC_BROWSER_IMAGE , client )
9198
9299
93100def check_python_image (client : docker .DockerClient | None = None ) -> bool :
94101 if not check_docker_access ():
95102 return False
96103 if client is None :
97- client = docker . from_env ()
98- client = docker . from_env ()
104+ client = get_docker_client ()
105+ client = get_docker_client ()
99106 return check_docker_image (PYTHON_IMAGE , client )
0 commit comments