Skip to content

Commit

Permalink
Support additional_contexts
Browse files Browse the repository at this point in the history
Signed-off-by: Otto Liljalaakso <[email protected]>
  • Loading branch information
otto-liljalaakso-nt committed Sep 8, 2023
1 parent bce40c2 commit 0f2aa5a
Show file tree
Hide file tree
Showing 6 changed files with 39 additions and 0 deletions.
8 changes: 8 additions & 0 deletions podman_compose.py
Original file line number Diff line number Diff line change
Expand Up @@ -1261,6 +1261,12 @@ def normalize_service(service, sub_dir=""):
if not context:
context = "."
service["build"]["context"] = context
if "build" in service and "additional_contexts" in service["build"]:
if is_dict(build["additional_contexts"]):
new_additional_contexts = []
for k, v in build["additional_contexts"].items():
new_additional_contexts.append(f"{k}={v}")
build["additional_contexts"] = new_additional_contexts
for key in ("command", "entrypoint"):
if key in service:
if is_str(service[key]):
Expand Down Expand Up @@ -2126,6 +2132,8 @@ def build_one(compose, args, cnt):
build_args.extend(get_secret_args(compose, cnt, secret))
for tag in build_desc.get("tags", []):
build_args.extend(["-t", tag])
for additional_ctx in build_desc.get("additional_contexts", {}):
build_args.extend([f"--build-context={additional_ctx}"])
if "target" in build_desc:
build_args.extend(["--target", build_desc["target"]])
container_to_ulimit_args(cnt, build_args)
Expand Down
14 changes: 14 additions & 0 deletions tests/additional_contexts/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Test podman-compose with build.additional_contexts

```
podman-compose build
podman-compose up
podman-compose down
```

expected output would be

```
[dict] | Data for dict
[list] | Data for list
```
1 change: 1 addition & 0 deletions tests/additional_contexts/data_for_dict/data.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Data for dict
1 change: 1 addition & 0 deletions tests/additional_contexts/data_for_list/data.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Data for list
3 changes: 3 additions & 0 deletions tests/additional_contexts/project/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
FROM busybox
COPY --from=data data.txt /data/data.txt
CMD ["busybox", "cat", "/data/data.txt"]
12 changes: 12 additions & 0 deletions tests/additional_contexts/project/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
version: "3.7"
services:
dict:
build:
context: .
additional_contexts:
data: ../data_for_dict
list:
build:
context: .
additional_contexts:
- data=../data_for_list

0 comments on commit 0f2aa5a

Please sign in to comment.