blob: 5958f4f313796951df9f817d3116175aff99ab7f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
import shutil
import subprocess
from .._util import L
class DockerController:
DOCKER_BIN_NAME = "docker"
def __init__(self, docker_bin: None | str = None) -> None:
self._docker_bin = docker_bin
@property
def docker_bin(self) -> str:
if self._docker_bin is None:
self._docker_bin = shutil.which(self.DOCKER_BIN_NAME)
return self._docker_bin
def list_containers(self) -> L[str]:
p = subprocess.run([self.docker_bin, "container", "ls", ""], capture_output=True)
return p.stdout.decode("utf-8").splitlines()
def restart_container(self, container_name: str) -> None:
subprocess.run([self.docker_bin, "restart", container_name])
|