in computers/default/docker.py [0:0]
def __enter__(self):
# Check if the container is running
result = subprocess.run(
["docker", "ps", "-q", "-f", f"name={self.container_name}"],
capture_output=True,
text=True,
)
if not result.stdout.strip():
raise RuntimeError(
f"Container {self.container_name} is not running. Build and run with:\n"
f"docker build -t {self.container_name} .\n"
f"docker run --rm -it --name {self.container_name} "
f"-p {self.port_mapping} -e DISPLAY={self.display} {self.container_name}"
)
# Fetch display geometry
geometry = self._exec(
f"DISPLAY={self.display} xdotool getdisplaygeometry"
).strip()
if geometry:
w, h = geometry.split()
self.dimensions = (int(w), int(h))
# print("Starting Docker container...")
# # Run the container detached, removing it automatically when it stops
# subprocess.check_call(
# [
# "docker",
# "run",
# "-d",
# "--rm",
# "--name",
# self.container_name,
# "-p",
# self.port_mapping,
# self.image,
# ]
# )
# # Give the container a moment to start
# time.sleep(3)
# print("Entering DockerComputer context")
return self