forked from localstack/localstack
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker_utils.py
More file actions
43 lines (29 loc) · 1.16 KB
/
docker_utils.py
File metadata and controls
43 lines (29 loc) · 1.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import logging
from localstack import config
from localstack.utils.container_utils.container_client import ContainerClient
"""Type alias for a simple version of VolumeBind"""
LOG = logging.getLogger(__name__)
def is_docker_sdk_installed() -> bool:
try:
import docker # noqa: F401
return True
except ModuleNotFoundError:
return False
def create_docker_client() -> ContainerClient:
if config.LEGACY_DOCKER_CLIENT or not is_docker_sdk_installed():
from localstack.utils.container_utils.docker_cmd_client import CmdDockerClient
LOG.debug(
"Using CmdDockerClient. LEGACY_DOCKER_CLIENT: %s, SDK installed: %s",
config.LEGACY_DOCKER_CLIENT,
is_docker_sdk_installed(),
)
return CmdDockerClient()
else:
from localstack.utils.container_utils.docker_sdk_client import SdkDockerClient
LOG.debug(
"Using SdkDockerClient. LEGACY_DOCKER_CLIENT: %s, SDK installed: %s",
config.LEGACY_DOCKER_CLIENT,
is_docker_sdk_installed(),
)
return SdkDockerClient()
DOCKER_CLIENT: ContainerClient = create_docker_client()