feat: Add resource limits
CI / test (push) Failing after 20s
CI / publish (push) Has been skipped

This commit is contained in:
2026-04-29 14:33:34 +02:00
parent 69c86f54f9
commit 10cad4c3f7
+6
View File
@@ -44,6 +44,8 @@ class DockerSandbox:
cap_drop: list[str] | None = None, cap_drop: list[str] | None = None,
cap_add: list[str] | None = None, cap_add: list[str] | None = None,
security_opt: list[str] | None = None, security_opt: list[str] | None = None,
cpu_limit: float = 8,
memory_limit: str = "16g",
) -> None: ) -> None:
self.container_name = container_name self.container_name = container_name
self._image = image self._image = image
@@ -56,6 +58,8 @@ class DockerSandbox:
self._cap_drop = cap_drop self._cap_drop = cap_drop
self._cap_add = cap_add self._cap_add = cap_add
self._security_opt = security_opt self._security_opt = security_opt
self._nano_cpus = int(cpu_limit * 1e9)
self._memory_limit = memory_limit
self._client: docker.DockerClient = docker.from_env() self._client: docker.DockerClient = docker.from_env()
self._container: docker.models.containers.Container | None = None self._container: docker.models.containers.Container | None = None
@@ -124,6 +128,8 @@ class DockerSandbox:
run_kwargs["cap_add"] = self._cap_add run_kwargs["cap_add"] = self._cap_add
if self._security_opt is not None: if self._security_opt is not None:
run_kwargs["security_opt"] = self._security_opt run_kwargs["security_opt"] = self._security_opt
run_kwargs["nano_cpus"] = self._nano_cpus
run_kwargs["mem_limit"] = self._memory_limit
try: try:
self._container = self._client.containers.run(self._image, **run_kwargs) self._container = self._client.containers.run(self._image, **run_kwargs)