summaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorCrazyMax <crazy-max@users.noreply.github.com>2022-09-08 16:13:41 +0200
committerCrazyMax <crazy-max@users.noreply.github.com>2022-11-17 20:57:12 +0100
commit25dc760162e1f6715fd97d23a3b24a32a31e424e (patch)
tree426016e0da28581cbfa64ef5916bef1c393343c1 /contrib
parentd806d0760df0ae09109343fd52d3f3cf3986853e (diff)
downloaddocker-25dc760162e1f6715fd97d23a3b24a32a31e424e.tar.gz
Dockerfile: variant support in frozen-images stage
using TARGETVARIANT in frozen-images stage implies changes in `download-frozen-image-v2.sh` script to add support for variants so we are able to build against more platforms. Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
Diffstat (limited to 'contrib')
-rwxr-xr-xcontrib/download-frozen-image-v2.sh10
1 files changed, 8 insertions, 2 deletions
diff --git a/contrib/download-frozen-image-v2.sh b/contrib/download-frozen-image-v2.sh
index b5e05b181a..e50f5ebdcc 100755
--- a/contrib/download-frozen-image-v2.sh
+++ b/contrib/download-frozen-image-v2.sh
@@ -261,6 +261,10 @@ get_target_arch() {
echo amd64
}
+get_target_variant() {
+ echo "${TARGETVARIANT:-}"
+}
+
while [ $# -gt 0 ]; do
imageTag="$1"
shift
@@ -311,11 +315,13 @@ while [ $# -gt 0 ]; do
found=""
targetArch="$(get_target_arch)"
+ targetVariant="$(get_target_variant)"
# parse first level multi-arch manifest
for i in "${!layers[@]}"; do
layerMeta="${layers[$i]}"
maniArch="$(echo "$layerMeta" | jq --raw-output '.platform.architecture')"
- if [ "$maniArch" = "${targetArch}" ]; then
+ maniVariant="$(echo "$layerMeta" | jq --raw-output '.platform.variant')"
+ if [[ "$maniArch" = "${targetArch}" ]] && [[ -z "${targetVariant}" || "$maniVariant" = "${targetVariant}" ]]; then
digest="$(echo "$layerMeta" | jq --raw-output '.digest')"
# get second level single manifest
submanifestJson="$(
@@ -332,7 +338,7 @@ while [ $# -gt 0 ]; do
fi
done
if [ -z "$found" ]; then
- echo >&2 "error: manifest for $maniArch is not found"
+ echo >&2 "error: manifest for ${targetArch}${targetVariant:+/${targetVariant}} is not found"
exit 1
fi
;;