diff --git a/scripts/ci/build-images.sh b/scripts/ci/build-images.sh index 097c086..b233d6b 100755 --- a/scripts/ci/build-images.sh +++ b/scripts/ci/build-images.sh @@ -18,18 +18,24 @@ should_push() { build_with_buildx() { local dockerfile=$1 local image=$2 + local platform_args=() if should_push; then + platform_args=(--platform "${PLATFORMS}") docker buildx build \ - --platform "${PLATFORMS}" \ + "${platform_args[@]}" \ -f "${dockerfile}" \ -t "${image}:${IMAGE_TAG}" \ -t "${image}:latest" \ --push \ "${ROOT_DIR}" else + # buildx cannot `--load` a manifest list, so load the host platform only. + local host_platform + host_platform="$(docker version --format '{{.Server.Os}}/{{.Server.Arch}}' 2>/dev/null || echo linux/amd64)" + platform_args=(--platform "${host_platform}") docker buildx build \ - --platform "${PLATFORMS}" \ + "${platform_args[@]}" \ -f "${dockerfile}" \ -t "${image}:${IMAGE_TAG}" \ -t "${image}:latest" \