Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 6fd5b54

Browse files
committedMar 12, 2025·
Fix interpolation for COMPOSE_PROJECT_NAME
Fixes #1073 Signed-off-by: Ruben Jenster <[email protected]>
1 parent 106b4da commit 6fd5b54

File tree

2 files changed

+15
-13
lines changed

2 files changed

+15
-13
lines changed
 

‎podman_compose.py

+14-13
Original file line numberDiff line numberDiff line change
@@ -1980,6 +1980,20 @@ def _parse_compose_file(self):
19801980
sys.exit(1)
19811981
content = normalize(content)
19821982
# log(filename, json.dumps(content, indent = 2))
1983+
1984+
if not project_name:
1985+
project_name = content.get("name")
1986+
if project_name is None:
1987+
# More strict then actually needed for simplicity:
1988+
# podman requires [a-zA-Z0-9][a-zA-Z0-9_.-]*
1989+
project_name = self.environ.get("COMPOSE_PROJECT_NAME", dir_basename.lower())
1990+
project_name = norm_re.sub("", project_name)
1991+
if not project_name:
1992+
raise RuntimeError(f"Project name [{dir_basename}] normalized to empty")
1993+
1994+
self.project_name = project_name
1995+
self.environ.update({"COMPOSE_PROJECT_NAME": self.project_name})
1996+
19831997
content = rec_subs(content, self.environ)
19841998
if isinstance(services := content.get('services'), dict):
19851999
for service in services.values():
@@ -2012,19 +2026,6 @@ def _parse_compose_file(self):
20122026
log.debug(" ** merged:\n%s", json.dumps(compose, indent=2))
20132027
# ver = compose.get('version')
20142028

2015-
if not project_name:
2016-
project_name = compose.get("name")
2017-
if project_name is None:
2018-
# More strict then actually needed for simplicity:
2019-
# podman requires [a-zA-Z0-9][a-zA-Z0-9_.-]*
2020-
project_name = self.environ.get("COMPOSE_PROJECT_NAME", dir_basename.lower())
2021-
project_name = norm_re.sub("", project_name)
2022-
if not project_name:
2023-
raise RuntimeError(f"Project name [{dir_basename}] normalized to empty")
2024-
2025-
self.project_name = project_name
2026-
self.environ.update({"COMPOSE_PROJECT_NAME": self.project_name})
2027-
20282029
services = compose.get("services")
20292030
if services is None:
20302031
services = {}

‎tests/integration/env-tests/test_podman_compose_env.py

+1
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ def test_env(self):
4949
- https://docs.docker.com/compose/how-tos/environment-variables/envvars/
5050
- https://github.com/compose-spec/compose-spec/blob/main/04-version-and-name.md
5151
"""
52+
5253
def test_project_name(self):
5354
try:
5455
output, _ = self.run_subprocess_assert_returncode([

0 commit comments

Comments
 (0)
Please sign in to comment.