Fix interpolation for COMPOSE_PROJECT_NAME

Fixes #1073

Signed-off-by: Ruben Jenster <r.jenster@drachenfels.de>
This commit is contained in:
Ruben Jenster 2025-03-20 12:06:19 +01:00 committed by Ruben Jenster
parent 170411de8b
commit 98b9bb9f8e
2 changed files with 15 additions and 13 deletions

View File

@ -0,0 +1 @@
- Fixed interpolation of the environment variable **COMPOSE_PROJECT_NAME** when it is set from the top-level **name** value within the Compose file.

View File

@ -1980,6 +1980,20 @@ class PodmanCompose:
sys.exit(1)
content = normalize(content)
# log(filename, json.dumps(content, indent = 2))
if not project_name:
project_name = content.get("name")
if project_name is None:
# More strict then actually needed for simplicity:
# podman requires [a-zA-Z0-9][a-zA-Z0-9_.-]*
project_name = self.environ.get("COMPOSE_PROJECT_NAME", dir_basename.lower())
project_name = norm_re.sub("", project_name)
if not project_name:
raise RuntimeError(f"Project name [{dir_basename}] normalized to empty")
self.project_name = project_name
self.environ.update({"COMPOSE_PROJECT_NAME": self.project_name})
content = rec_subs(content, self.environ)
if isinstance(services := content.get('services'), dict):
for service in services.values():
@ -2012,19 +2026,6 @@ class PodmanCompose:
log.debug(" ** merged:\n%s", json.dumps(compose, indent=2))
# ver = compose.get('version')
if not project_name:
project_name = compose.get("name")
if project_name is None:
# More strict then actually needed for simplicity:
# podman requires [a-zA-Z0-9][a-zA-Z0-9_.-]*
project_name = self.environ.get("COMPOSE_PROJECT_NAME", dir_basename.lower())
project_name = norm_re.sub("", project_name)
if not project_name:
raise RuntimeError(f"Project name [{dir_basename}] normalized to empty")
self.project_name = project_name
self.environ.update({"COMPOSE_PROJECT_NAME": self.project_name})
services = compose.get("services")
if services is None:
services = {}