Skip to content

Commit 4557279

Browse files
#88: multiple aliases
1 parent 7ad3775 commit 4557279

2 files changed

Lines changed: 28 additions & 3 deletions

File tree

‎podman_compose.py‎

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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

597608
def container_to_args(compose, cnt, detached=True):
598609
# TODO: double check -e , --add-host, -v, --read-only

‎tests/nets_test3/docker-compose.yml‎

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,18 @@ services:
2828
- 8002:8001
2929
volumes:
3030
- ./test2.txt:/var/www/html/index.txt:ro,z
31+
web3:
32+
image: busybox
33+
command: ["/bin/busybox", "httpd", "-f", "-h", "/var/www/html", "-p", "8001"]
34+
working_dir: /var/www/html
35+
networks:
36+
net1:
37+
aliases:
38+
- alias11
39+
- alias12
40+
net2:
41+
aliases:
42+
- alias21
43+
volumes:
44+
- ./test2.txt:/var/www/html/index.txt:ro,z
3145

0 commit comments

Comments
 (0)