mirror of
https://github.com/containers/podman-compose.git
synced 2025-04-09 17:41:03 +02:00
Fix interpolation for COMPOSE_PROJECT_NAME
Fixes #1073 Signed-off-by: Ruben Jenster <r.jenster@drachenfels.de>
This commit is contained in:
parent
170411de8b
commit
98b9bb9f8e
1
newsfragments/1165-PROJECT_NAME-interpolation.bugfix
Normal file
1
newsfragments/1165-PROJECT_NAME-interpolation.bugfix
Normal 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.
|
@ -1980,6 +1980,20 @@ class PodmanCompose:
|
|||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
content = normalize(content)
|
content = normalize(content)
|
||||||
# log(filename, json.dumps(content, indent = 2))
|
# 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)
|
content = rec_subs(content, self.environ)
|
||||||
if isinstance(services := content.get('services'), dict):
|
if isinstance(services := content.get('services'), dict):
|
||||||
for service in services.values():
|
for service in services.values():
|
||||||
@ -2012,19 +2026,6 @@ class PodmanCompose:
|
|||||||
log.debug(" ** merged:\n%s", json.dumps(compose, indent=2))
|
log.debug(" ** merged:\n%s", json.dumps(compose, indent=2))
|
||||||
# ver = compose.get('version')
|
# 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")
|
services = compose.get("services")
|
||||||
if services is None:
|
if services is None:
|
||||||
services = {}
|
services = {}
|
||||||
|
Loading…
Reference in New Issue
Block a user