| 22 | |
| 23 | class Container: |
| 24 | def __init__(self, image): |
| 25 | self.image = image |
| 26 | self.client = docker.from_env() |
| 27 | self.container: docker.models.containers.Container = self.client.containers.run( |
| 28 | image, detach=True, tty=True, stdin_open=True, remove=True, |
| 29 | labels={"created_by": "os-pipeline"} |
| 30 | ) |
| 31 | self.exec_id = self.client.api.exec_create(self.container.id, "bash --login", stdin=True, tty=True)["Id"] |
| 32 | self.sock = self.client.api.exec_start(self.exec_id, socket=True)._sock |
| 33 | self.sock.settimeout(5) |
| 34 | # clear buffer |
| 35 | self.sock.recv(1000) |
| 36 | |
| 37 | def __del__(self): |
| 38 | try: |