aboutsummaryrefslogtreecommitdiff
path: root/tools/cru-py/cru/service/_docker.py
blob: 9b801c45def0e88886fc35c9b2f56b321b7ddc0e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import subprocess

from cru.tool import ExternalTool


class DockerController(ExternalTool):
    DOCKER_BIN_NAME = "docker"

    def __init__(self, docker_bin: None | str = None) -> None:
        super().__init__(docker_bin or self.DOCKER_BIN_NAME)

    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])