diff --git a/scone/default/recipes/docker.py b/scone/default/recipes/docker.py index d7a5030..0dcb352 100644 --- a/scone/default/recipes/docker.py +++ b/scone/default/recipes/docker.py @@ -25,6 +25,8 @@ class DockerContainer(Recipe): self.ports = check_type(args.get("ports", dict()), dict) self.environment = check_type(args.get("environment", dict()), dict) self.restart_policy = check_type(args.get("restart_policy", "on-failure"), str) + self.cap_add = check_type(args.get("cap_add", list()), list) + self.cap_drop = check_type(args.get("cap_drop", list()), list) def prepare(self, preparation: Preparation, head: Head) -> None: super().prepare(preparation, head) @@ -47,6 +49,8 @@ class DockerContainer(Recipe): self.volumes, {k: str(v) for k, v in self.environment.items()}, self.restart_policy, + self.cap_add, + self.cap_drop, ), DockerContainerRun.Result, ) diff --git a/scone/default/utensils/docker_utensils.py b/scone/default/utensils/docker_utensils.py index aab2eb6..fa6f53f 100644 --- a/scone/default/utensils/docker_utensils.py +++ b/scone/default/utensils/docker_utensils.py @@ -1,5 +1,5 @@ from enum import Enum -from typing import Dict, Optional, Tuple, Union +from typing import Dict, List, Optional, Tuple, Union import attr @@ -84,6 +84,10 @@ class DockerContainerRun(Utensil): environment: Dict[str, str] # Restart policy restart_policy: str + # Capabilities to add + cap_add: List[str] + # Capabilities to drop + cap_drop: List[str] @attr.s(auto_attribs=True) class Result: @@ -105,6 +109,8 @@ class DockerContainerRun(Utensil): volumes=self.volumes, environment=self.environment, restart_policy=restart_policy, + cap_add=self.cap_add, + cap_drop=self.cap_drop, ) await channel.send(DockerContainerRun.Result(name=container.name))