diff --git a/docs/Extensions.md b/docs/Extensions.md index d99467a..300e071 100644 --- a/docs/Extensions.md +++ b/docs/Extensions.md @@ -14,6 +14,8 @@ The following extension keys are available under container configuration: * `x-podman.rootfs` - Run the container without requiring any image management; the rootfs of the container is assumed to be managed externally. +* `x-podman.no_hosts` - Run the container without creating /etc/hosts file + For example, the following docker-compose.yml allows running a podman container with externally managed rootfs. ```yml version: "3" diff --git a/newsfragments/container-no-hosts.feature b/newsfragments/container-no-hosts.feature new file mode 100644 index 0000000..27125fb --- /dev/null +++ b/newsfragments/container-no-hosts.feature @@ -0,0 +1 @@ +Add x-podman.no_hosts setting to pass --no-hosts to podman run diff --git a/podman_compose.py b/podman_compose.py index 6b974f5..07fc882 100755 --- a/podman_compose.py +++ b/podman_compose.py @@ -1254,6 +1254,8 @@ async def container_to_args(compose, cnt, detached=True): podman_args.extend(["--uidmap", uidmap]) for gidmap in cnt.get('x-podman.gidmaps', []): podman_args.extend(["--gidmap", gidmap]) + if cnt.get("x-podman.no_hosts", False): + podman_args.extend(["--no-hosts"]) rootfs = cnt.get('x-podman.rootfs', None) if rootfs is not None: rootfs_mode = True diff --git a/tests/unit/test_container_to_args.py b/tests/unit/test_container_to_args.py index bd0fbdc..e27ce62 100644 --- a/tests/unit/test_container_to_args.py +++ b/tests/unit/test_container_to_args.py @@ -249,6 +249,25 @@ class TestContainerToArgs(unittest.IsolatedAsyncioTestCase): ], ) + async def test_no_hosts_extension(self): + c = create_compose_mock() + + cnt = get_minimal_container() + cnt["x-podman.no_hosts"] = True + + args = await container_to_args(c, cnt) + self.assertEqual( + args, + [ + "--name=project_name_service_name1", + "-d", + "--network=bridge", + "--network-alias=service_name", + "--no-hosts", + "busybox", + ], + ) + async def test_env_file_str(self): c = create_compose_mock()