Merge pull request #1166 from piotr-kubiak/megre-args

Allow merging of args in both list and dict syntax
This commit is contained in:
Povilas Kanapickas 2025-03-24 13:35:31 +02:00 committed by GitHub
commit 4d899edeb3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 14 additions and 0 deletions

View File

@ -0,0 +1 @@
- Fixed error when merging args in list and dict syntax

View File

@ -1607,6 +1607,9 @@ def normalize_service(service, sub_dir=""):
for k, v in build["additional_contexts"].items():
new_additional_contexts.append(f"{k}={v}")
build["additional_contexts"] = new_additional_contexts
if "build" in service and "args" in service["build"]:
if isinstance(build["args"], dict):
build["args"] = norm_as_list(build["args"])
for key in ("command", "entrypoint"):
if key in service:
if isinstance(service[key], str):

View File

@ -68,6 +68,16 @@ class TestCanMergeBuild(unittest.TestCase):
{"build": {"dockerfile": "./dockerfile-1", "args": ["ENV2=2"]}},
{"build": {"dockerfile": "./dockerfile-1", "args": ["ENV1=1", "ENV2=2"]}},
),
(
{"build": {"dockerfile": "./dockerfile-1", "args": {"ENV1": "1"}}},
{"build": {"dockerfile": "./dockerfile-2", "args": {"ENV2": "2"}}},
{"build": {"dockerfile": "./dockerfile-2", "args": ["ENV1=1", "ENV2=2"]}},
),
(
{"build": {"dockerfile": "./dockerfile-1", "args": ["ENV1=1"]}},
{"build": {"dockerfile": "./dockerfile-2", "args": {"ENV2": "2"}}},
{"build": {"dockerfile": "./dockerfile-2", "args": ["ENV1=1", "ENV2=2"]}},
),
])
def test_parse_compose_file_when_multiple_composes(self, input, override, expected):
compose_test_1 = {"services": {"test-service": input}}