@@ -1981,15 +1981,20 @@ def _parse_compose_file(self):
1981
1981
content = normalize (content )
1982
1982
# log(filename, json.dumps(content, indent = 2))
1983
1983
1984
+ # See also https://docs.docker.com/compose/how-tos/project-name/#set-a-project-name
1985
+ # **project_name** is initialized to the argument of the `-p` command line flag.
1984
1986
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" )
1987
+ project_name = self .environ .get ("COMPOSE_PROJECT_NAME" )
1988
+ if not project_name :
1989
+ project_name = content .get ("name" )
1990
+ if not project_name :
1991
+ project_name = dir_basename .lower ()
1992
+ # More strict then actually needed for simplicity:
1993
+ # podman requires [a-zA-Z0-9][a-zA-Z0-9_.-]*
1994
+ project_name_normalized = norm_re .sub ("" , project_name )
1995
+ if not project_name_normalized :
1996
+ raise RuntimeError (f"Project name [{ project_name } ] normalized to empty" )
1997
+ project_name = project_name_normalized
1993
1998
1994
1999
self .project_name = project_name
1995
2000
self .environ .update ({"COMPOSE_PROJECT_NAME" : self .project_name })
0 commit comments