@@ -402,7 +402,7 @@ async def assert_volume(compose, mount_dict):
402402 log .debug ("podman volume inspect %s || podman volume create %s" , vol_name , vol_name )
403403 # TODO: might move to using "volume list"
404404 # podman volume list --format '{{.Name}}\t{{.MountPoint}}' \
405- # -f ' label=io.podman. compose.project=HERE'
405+ # -f f" label={ compose.label_domain}. project=HERE"
406406 try :
407407 _ = (await compose .podman .output ([], "volume" , ["inspect" , vol_name ])).decode ("utf-8" )
408408 except subprocess .CalledProcessError as e :
@@ -412,7 +412,7 @@ async def assert_volume(compose, mount_dict):
412412 args = [
413413 "create" ,
414414 "--label" ,
415- f"io.podman .compose.project={ compose .project_name } " ,
415+ f"{ compose . label_domain } .compose.project={ compose .project_name } " ,
416416 "--label" ,
417417 f"com.docker.compose.project={ compose .project_name } " ,
418418 ]
@@ -799,11 +799,11 @@ def norm_ports(ports_in):
799799 return ports_out
800800
801801
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' ):
803803 args = [
804804 "create" ,
805805 "--label" ,
806- f"io.podman .compose.project={ proj_name } " ,
806+ f"{ label_domain } .compose.project={ proj_name } " ,
807807 "--label" ,
808808 f"com.docker.compose.project={ proj_name } " ,
809809 ]
@@ -866,7 +866,9 @@ async def assert_cnt_nets(compose, cnt):
866866 except subprocess .CalledProcessError as e :
867867 if is_ext :
868868 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+ )
870872 await compose .podman .output ([], "network" , args )
871873 await compose .podman .output ([], "network" , ["exists" , net_name ])
872874
@@ -1456,7 +1458,7 @@ async def volume_ls(self, proj_name=None):
14561458 "ls" ,
14571459 "--noheading" ,
14581460 "--filter" ,
1459- f"label=io.podman .compose.project={ proj_name } " ,
1461+ f"label={ self . compose . label_domain } .compose.project={ proj_name } " ,
14601462 "--format" ,
14611463 "{{.Name}}" ,
14621464 ],
@@ -1672,6 +1674,7 @@ def __init__(self):
16721674 self .commands = {}
16731675 self .global_args = None
16741676 self .project_name = None
1677+ self .label_domain = None
16751678 self .dirname = None
16761679 self .pods = None
16771680 self .containers = None
@@ -1789,6 +1792,14 @@ def _parse_compose_file(self):
17891792 relative_files = files
17901793 filename = files [0 ]
17911794 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")
17921803 # no_ansi = args.no_ansi
17931804 # no_cleanup = args.no_cleanup
17941805 # dry_run = args.dry_run
@@ -1890,6 +1901,7 @@ def _parse_compose_file(self):
18901901 raise RuntimeError (f"Project name [{ dir_basename } ] normalized to empty" )
18911902
18921903 self .project_name = project_name
1904+ self .label_domain = label_domain
18931905 self .environ .update ({"COMPOSE_PROJECT_NAME" : self .project_name })
18941906
18951907 services = compose .get ("services" , None )
@@ -1934,9 +1946,9 @@ def _parse_compose_file(self):
19341946 # volumes: [...]
19351947 self .vols = compose .get ("volumes" , {})
19361948 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__ ,
19401952 f"PODMAN_SYSTEMD_UNIT=podman-compose@{ project_name } .service" ,
19411953 "com.docker.compose.project=" + project_name ,
19421954 "com.docker.compose.project.working_dir=" + dirname ,
@@ -2039,6 +2051,7 @@ def _parse_args(self, argv=None):
20392051 for cmd_parser in cmd ._parse_args : # pylint: disable=protected-access
20402052 cmd_parser (subparser )
20412053 self .global_args = parser .parse_args (argv )
2054+ print (self .global_args )
20422055 if self .global_args .in_pod is not None and self .global_args .in_pod .lower () not in (
20432056 '' ,
20442057 'true' ,
@@ -2111,6 +2124,12 @@ def _init_global_parser(parser):
21112124 type = str ,
21122125 default = None ,
21132126 )
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+ )
21142133 parser .add_argument (
21152134 "--podman-path" ,
21162135 help = "Specify an alternate path to podman (default: use location in $PATH variable)" ,
@@ -2494,10 +2513,10 @@ async def compose_up(compose: PodmanCompose, args):
24942513 "ps" ,
24952514 [
24962515 "--filter" ,
2497- f"label=io.podman .compose.project={ compose .project_name } " ,
2516+ f"label={ compose . label_domain } .compose.project={ compose .project_name } " ,
24982517 "-a" ,
24992518 "--format" ,
2500- '{{ index .Labels "io.podman .compose.config-hash"}}' ,
2519+ '{{ index .Labels "' + compose . label_domain + ' .compose.config-hash"}}' ,
25012520 ],
25022521 )
25032522 )
@@ -2642,7 +2661,7 @@ async def compose_down(compose, args):
26422661 "ps" ,
26432662 [
26442663 "--filter" ,
2645- f"label=io.podman .compose.project={ compose .project_name } " ,
2664+ f"label={ compose . label_domain } .compose.project={ compose .project_name } " ,
26462665 "-a" ,
26472666 "--format" ,
26482667 "{{ .Names }}" ,
@@ -2676,7 +2695,11 @@ async def compose_down(compose, args):
26762695
26772696@cmd_run (podman_compose , "ps" , "show status of containers" )
26782697async 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+ ]
26802703 if args .quiet is True :
26812704 ps_args .extend (["--format" , "{{.ID}}" ])
26822705 elif args .format :
0 commit comments