@@ -551,7 +551,10 @@ def assert_cnt_nets(compose, cnt):
551551 proj_name = compose .project_name
552552 nets = compose .networks
553553 default_net = compose .default_net
554- cnt_nets = norm_as_list (cnt .get ("networks" , None ) or default_net )
554+ cnt_nets = cnt .get ("networks" , None )
555+ if cnt_nets and is_dict (cnt_nets ):
556+ cnt_nets = list (cnt_nets .keys ())
557+ cnt_nets = norm_as_list (cnt_nets or default_net )
555558 for net in cnt_nets :
556559 net_desc = nets [net ] or {}
557560 is_ext = net_desc .get ("external" , None )
@@ -582,7 +585,15 @@ def get_net_args(compose, cnt):
582585 proj_name = compose .project_name
583586 default_net = compose .default_net
584587 nets = compose .networks
585- cnt_nets = norm_as_list (cnt .get ("networks" , None ) or default_net )
588+ cnt_nets = cnt .get ("networks" , None )
589+ aliases = [service_name ]
590+ # NOTE: from podman manpage:
591+ # NOTE: A container will only have access to aliases on the first network that it joins. This is a limitation that will be removed in a later release.
592+ if cnt_nets and is_dict (cnt_nets ):
593+ for net_key , net_value in cnt_nets .items ():
594+ aliases .extend (norm_as_list (net_value .get ("aliases" , None )))
595+ cnt_nets = list (cnt_nets .keys ())
596+ cnt_nets = norm_as_list (cnt_nets or default_net )
586597 net_names = set ()
587598 for net in cnt_nets :
588599 net_desc = nets [net ] or {}
@@ -592,7 +603,7 @@ def get_net_args(compose, cnt):
592603 net_name = ext_desc .get ("name" , None ) or net_desc .get ("name" , None ) or default_net_name
593604 net_names .add (net_name )
594605 net_names_str = "," .join (net_names )
595- return ["--net" , net_names_str , "--network-alias" , service_name ]
606+ return ["--net" , net_names_str , "--network-alias" , "," . join ( aliases ) ]
596607
597608def container_to_args (compose , cnt , detached = True ):
598609 # TODO: double check -e , --add-host, -v, --read-only
0 commit comments