Merge pull request #1085 from jeremyvisser/fix-device-cgroup-rules

Add device_cgroup_rules support
This commit is contained in:
Povilas Kanapickas 2024-12-06 11:02:16 +02:00 committed by GitHub
commit 376f0817e6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 26 additions and 0 deletions

View File

@ -0,0 +1 @@
Added support for the "device_cgroup_rules" property in services.

View File

@ -1074,6 +1074,8 @@ async def container_to_args(compose, cnt, detached=True):
podman_args.extend(["--group-add", item]) podman_args.extend(["--group-add", item])
for item in cnt.get("devices", []): for item in cnt.get("devices", []):
podman_args.extend(["--device", item]) podman_args.extend(["--device", item])
for item in cnt.get("device_cgroup_rules", []):
podman_args.extend(["--device-cgroup-rule", item])
for item in norm_as_list(cnt.get("dns")): for item in norm_as_list(cnt.get("dns")):
podman_args.extend(["--dns", item]) podman_args.extend(["--dns", item])
for item in norm_as_list(cnt.get("dns_opt")): for item in norm_as_list(cnt.get("dns_opt")):

View File

@ -611,3 +611,26 @@ class TestContainerToArgs(unittest.IsolatedAsyncioTestCase):
"busybox", "busybox",
], ],
) )
async def test_device(self):
c = create_compose_mock()
cnt = get_minimal_container()
cnt['devices'] = ['/dev/ttyS0']
cnt['device_cgroup_rules'] = ['c 100:200 rwm']
args = await container_to_args(c, cnt)
self.assertEqual(
args,
[
"--name=project_name_service_name1",
"-d",
"--device",
"/dev/ttyS0",
"--device-cgroup-rule",
"c 100:200 rwm",
"--network=bridge",
"--network-alias=service_name",
"busybox",
],
)