feat: Add resource limits
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user