- #!/usr/bin/env bash
-
- set +u
- echo "variables (see https://docs.docker.com/docker-hub/builds/advanced/):"
- echo "SOURCE_BRANCH: $SOURCE_BRANCH"
- echo "SOURCE_COMMIT: $SOURCE_COMMIT"
- echo "COMMIT_MSG: $COMMIT_MSG"
- echo "DOCKER_REPO: $DOCKER_REPO"
- echo "DOCKERFILE_PATH: $DOCKERFILE_PATH"
- echo "CACHE_TAG: $CACHE_TAG"
- echo "IMAGE_NAME: $IMAGE_NAME"
- echo
-
- : "${DOCKERFILE_PATH:=./Dockerfile}"
- : "${IMAGE_NAME:=dutchcoders/transer.sh}"
-
- echo "variables after applying defaults:"
- echo "DOCKERFILE_PATH: $DOCKERFILE_PATH"
- echo "IMAGE_NAME: $IMAGE_NAME"
- echo
-
- export PATH="$PWD/docker:$PATH"
-
- # =>
- # https://hub.docker.com/u/arm64v8/
- # https://hub.docker.com/u/arm32v7/
- # https://hub.docker.com/u/arm32v6/
- # https://hub.docker.com/u/arm32v5/
- declare -A base_image_prefix_map=( ["aarch64"]="arm64v8/" ["arm"]="arm32v5/" ["amd64"]="")
-
- # => dpkg -L qemu-user-static | grep /usr/bin/
- declare -A docker_qemu_arch_map=( ["aarch64"]="aarch64" ["arm"]="arm" ["amd64"]="x86_64")
-
- # => https://github.com/docker/docker-ce/blob/76ac3a4952a9c03f04f26fc88d3160acd51d1702/components/cli/cli/command/manifest/util.go#L22
- declare -A docker_to_manifest_map=( ["aarch64"]="arm64" ["arm"]="arm" ["amd64"]="amd64")
-
- # what we want to build
- build_architectures=(amd64 aarch64 arm)
- verified_build_architectures=()
- verified_build_architectures+=("$(docker version -f '{{.Server.Arch}}')")
-
- # what we can build
- for arch in ${build_architectures[@]}; do
- if [ -f "qemu-${docker_qemu_arch_map[${arch}]}-static" ]; then
- echo "qemu binary for $arch found";
- verified_build_architectures+=($arch)
- fi
- done
-
- echo $verified_build_architectures
- set -u
-
- docker -v
- echo
|