@@ -402,7 +402,7 @@ async def assert_volume(compose, mount_dict):
402
402
log .debug ("podman volume inspect %s || podman volume create %s" , vol_name , vol_name )
403
403
# TODO: might move to using "volume list"
404
404
# podman volume list --format '{{.Name}}\t{{.MountPoint}}' \
405
- # -f ' label=io.podman. compose.project=HERE'
405
+ # -f f" label={ compose.label_domain}. project=HERE"
406
406
try :
407
407
_ = (await compose .podman .output ([], "volume" , ["inspect" , vol_name ])).decode ("utf-8" )
408
408
except subprocess .CalledProcessError as e :
@@ -412,7 +412,7 @@ async def assert_volume(compose, mount_dict):
412
412
args = [
413
413
"create" ,
414
414
"--label" ,
415
- f"io.podman .compose.project={ compose .project_name } " ,
415
+ f"{ compose . label_domain } .compose.project={ compose .project_name } " ,
416
416
"--label" ,
417
417
f"com.docker.compose.project={ compose .project_name } " ,
418
418
]
@@ -799,11 +799,11 @@ def norm_ports(ports_in):
799
799
return ports_out
800
800
801
801
802
- def get_network_create_args (net_desc , proj_name , net_name ):
802
+ def get_network_create_args (net_desc , proj_name , net_name , label_domain = 'io.podman' ):
803
803
args = [
804
804
"create" ,
805
805
"--label" ,
806
- f"io.podman .compose.project={ proj_name } " ,
806
+ f"{ label_domain } .compose.project={ proj_name } " ,
807
807
"--label" ,
808
808
f"com.docker.compose.project={ proj_name } " ,
809
809
]
@@ -866,7 +866,9 @@ async def assert_cnt_nets(compose, cnt):
866
866
except subprocess .CalledProcessError as e :
867
867
if is_ext :
868
868
raise RuntimeError (f"External network [{ net_name } ] does not exists" ) from e
869
- args = get_network_create_args (net_desc , compose .project_name , net_name )
869
+ args = get_network_create_args (
870
+ net_desc , compose .project_name , net_name , compose .label_domain
871
+ )
870
872
await compose .podman .output ([], "network" , args )
871
873
await compose .podman .output ([], "network" , ["exists" , net_name ])
872
874
@@ -1456,7 +1458,7 @@ async def volume_ls(self, proj_name=None):
1456
1458
"ls" ,
1457
1459
"--noheading" ,
1458
1460
"--filter" ,
1459
- f"label=io.podman .compose.project={ proj_name } " ,
1461
+ f"label={ self . compose . label_domain } .compose.project={ proj_name } " ,
1460
1462
"--format" ,
1461
1463
"{{.Name}}" ,
1462
1464
],
@@ -1672,6 +1674,7 @@ def __init__(self):
1672
1674
self .commands = {}
1673
1675
self .global_args = None
1674
1676
self .project_name = None
1677
+ self .label_domain = None
1675
1678
self .dirname = None
1676
1679
self .pods = None
1677
1680
self .containers = None
@@ -1789,6 +1792,14 @@ def _parse_compose_file(self):
1789
1792
relative_files = files
1790
1793
filename = files [0 ]
1791
1794
project_name = args .project_name
1795
+ label_domain = os .environ .get ("COMPOSE_LABEL_DOMAIN" , "io.podman" )
1796
+ if label_domain in args :
1797
+ label_domain = args .label_domain
1798
+
1799
+ #if args.label_domain:
1800
+ # label_domain = args.label_domain
1801
+ #else:
1802
+ # label_domain = os.eviron.get("COMPOSE_LABEL_DOMAIN", "io.podman")
1792
1803
# no_ansi = args.no_ansi
1793
1804
# no_cleanup = args.no_cleanup
1794
1805
# dry_run = args.dry_run
@@ -1890,6 +1901,7 @@ def _parse_compose_file(self):
1890
1901
raise RuntimeError (f"Project name [{ dir_basename } ] normalized to empty" )
1891
1902
1892
1903
self .project_name = project_name
1904
+ self .label_domain = label_domain
1893
1905
self .environ .update ({"COMPOSE_PROJECT_NAME" : self .project_name })
1894
1906
1895
1907
services = compose .get ("services" , None )
@@ -1934,9 +1946,9 @@ def _parse_compose_file(self):
1934
1946
# volumes: [...]
1935
1947
self .vols = compose .get ("volumes" , {})
1936
1948
podman_compose_labels = [
1937
- "io.podman .compose.config-hash=" + self .yaml_hash ,
1938
- "io.podman .compose.project=" + project_name ,
1939
- "io.podman .compose.version=" + __version__ ,
1949
+ label_domain + " .compose.config-hash=" + self .yaml_hash ,
1950
+ label_domain + " .compose.project=" + project_name ,
1951
+ label_domain + " .compose.version=" + __version__ ,
1940
1952
f"PODMAN_SYSTEMD_UNIT=podman-compose@{ project_name } .service" ,
1941
1953
"com.docker.compose.project=" + project_name ,
1942
1954
"com.docker.compose.project.working_dir=" + dirname ,
@@ -2039,6 +2051,7 @@ def _parse_args(self, argv=None):
2039
2051
for cmd_parser in cmd ._parse_args : # pylint: disable=protected-access
2040
2052
cmd_parser (subparser )
2041
2053
self .global_args = parser .parse_args (argv )
2054
+ print (self .global_args )
2042
2055
if self .global_args .in_pod is not None and self .global_args .in_pod .lower () not in (
2043
2056
'' ,
2044
2057
'true' ,
@@ -2111,6 +2124,12 @@ def _init_global_parser(parser):
2111
2124
type = str ,
2112
2125
default = None ,
2113
2126
)
2127
+ parser .add_argument (
2128
+ "--label-domain" ,
2129
+ help = "Specify an alternate root domain for resource labels (default: io.podman)" ,
2130
+ type = str ,
2131
+ default = "io.podman" ,
2132
+ )
2114
2133
parser .add_argument (
2115
2134
"--podman-path" ,
2116
2135
help = "Specify an alternate path to podman (default: use location in $PATH variable)" ,
@@ -2494,10 +2513,10 @@ async def compose_up(compose: PodmanCompose, args):
2494
2513
"ps" ,
2495
2514
[
2496
2515
"--filter" ,
2497
- f"label=io.podman .compose.project={ compose .project_name } " ,
2516
+ f"label={ compose . label_domain } .compose.project={ compose .project_name } " ,
2498
2517
"-a" ,
2499
2518
"--format" ,
2500
- '{{ index .Labels "io.podman .compose.config-hash"}}' ,
2519
+ '{{ index .Labels "' + compose . label_domain + ' .compose.config-hash"}}' ,
2501
2520
],
2502
2521
)
2503
2522
)
@@ -2642,7 +2661,7 @@ async def compose_down(compose, args):
2642
2661
"ps" ,
2643
2662
[
2644
2663
"--filter" ,
2645
- f"label=io.podman .compose.project={ compose .project_name } " ,
2664
+ f"label={ compose . label_domain } .compose.project={ compose .project_name } " ,
2646
2665
"-a" ,
2647
2666
"--format" ,
2648
2667
"{{ .Names }}" ,
@@ -2676,7 +2695,11 @@ async def compose_down(compose, args):
2676
2695
2677
2696
@cmd_run (podman_compose , "ps" , "show status of containers" )
2678
2697
async def compose_ps (compose , args ):
2679
- ps_args = ["-a" , "--filter" , f"label=io.podman.compose.project={ compose .project_name } " ]
2698
+ ps_args = [
2699
+ "-a" ,
2700
+ "--filter" ,
2701
+ f"label={ compose .label_domain } .compose.project={ compose .project_name } " ,
2702
+ ]
2680
2703
if args .quiet is True :
2681
2704
ps_args .extend (["--format" , "{{.ID}}" ])
2682
2705
elif args .format :
0 commit comments