diff --git a/podman_compose.py b/podman_compose.py index e41008a8..a38b3808 100755 --- a/podman_compose.py +++ b/podman_compose.py @@ -983,6 +983,8 @@ async def container_to_args(compose, cnt, detached=True): platform = cnt.get("platform", None) if platform is not None: podman_args.extend(["--platform", platform]) + if cnt.get("runtime", None): + podman_args.extend(["--runtime", cnt["runtime"]]) # WIP: healthchecks are still work in progress healthcheck = cnt.get("healthcheck", None) or {} diff --git a/pytests/test_container_to_args.py b/pytests/test_container_to_args.py new file mode 100644 index 00000000..47eac6f5 --- /dev/null +++ b/pytests/test_container_to_args.py @@ -0,0 +1,58 @@ +from unittest import mock +from podman_compose import container_to_args + + +def create_compose_mock(): + compose = mock.Mock() + compose.project_name = "test_project_name" + compose.dirname = "test_dirname" + compose.container_names_by_service.get = mock.Mock(return_value=None) + compose.prefer_volume_over_mount = False + compose.default_net = None + compose.networks = {} + return compose + + +def get_minimal_container(): + return { + "name": "project_name_service_name1", + "service_name": "service_name", + "image": "busybox", + } + + +def test_container_to_args_minimal() -> None: + c = create_compose_mock() + + cnt = get_minimal_container() + + args = container_to_args(c, cnt) + assert args == [ + "--name=project_name_service_name1", + "-d", + "--net", + "", + "--network-alias", + "service_name", + "busybox", + ] + + +def test_container_to_args_runtime() -> None: + c = create_compose_mock() + + cnt = get_minimal_container() + cnt["runtime"] = "runsc" + + args = container_to_args(c, cnt) + assert args == [ + "--name=project_name_service_name1", + "-d", + "--net", + "", + "--network-alias", + "service_name", + "--runtime", + "runsc", + "busybox", + ]