From de2c33d7ae6c147f37613345ac889aee5f48ad06 Mon Sep 17 00:00:00 2001 From: Songmin Li Date: Wed, 18 Dec 2024 19:59:24 +0200 Subject: [PATCH] Simplify get_net_args_from_network_mode() This commit takes into account that network_mode won't have networks attribute set, accordingly get_net_args_from_network_mode() can calculate complete net_args easily. Modified-by: Povilas Kanapickas Signed-off-by: Songmin Li --- podman_compose.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/podman_compose.py b/podman_compose.py index 1367497..07509ea 100755 --- a/podman_compose.py +++ b/podman_compose.py @@ -887,7 +887,6 @@ def get_net_args_from_network_mode(compose, cnt): f"networks and network_mode must not be present in the same service [{service_name}]" ) - is_bridge = False if net == "none": net_args.append("--network=none") elif net == "host": @@ -908,12 +907,20 @@ def get_net_args_from_network_mode(compose, cnt): other_cnt = net.split(":", 1)[1].strip() net_args.append(f"--network=container:{other_cnt}") elif net.startswith("bridge"): - is_bridge = True + aliases_on_container = [service_name] + if cnt.get("_aliases"): + aliases_on_container.extend(cnt.get("_aliases")) + net_args.append("--network=bridge") + mac_address = cnt.get("mac_address") + if mac_address: + net_args.append(f"--mac-address={mac_address}") + for alias in aliases_on_container: + net_args.extend([f"--network-alias={alias}"]) else: log.fatal("unknown network_mode [%s]", net) sys.exit(1) - return net_args, is_bridge + return net_args def get_net_args(compose, cnt): @@ -922,7 +929,7 @@ def get_net_args(compose, cnt): mac_address = cnt.get("mac_address") net = cnt.get("network_mode") if net: - net_args, is_bridge = get_net_args_from_network_mode(compose, cnt) + return get_net_args_from_network_mode(compose, cnt) else: is_bridge = True cnt_nets = cnt.get("networks")