You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

54 lines
1.6 KiB

  1. #!/usr/bin/env bash
  2. set +u
  3. echo "variables (see https://docs.docker.com/docker-hub/builds/advanced/):"
  4. echo "SOURCE_BRANCH: $SOURCE_BRANCH"
  5. echo "SOURCE_COMMIT: $SOURCE_COMMIT"
  6. echo "COMMIT_MSG: $COMMIT_MSG"
  7. echo "DOCKER_REPO: $DOCKER_REPO"
  8. echo "DOCKERFILE_PATH: $DOCKERFILE_PATH"
  9. echo "CACHE_TAG: $CACHE_TAG"
  10. echo "IMAGE_NAME: $IMAGE_NAME"
  11. echo
  12. : "${DOCKERFILE_PATH:=./Dockerfile}"
  13. : "${IMAGE_NAME:=dutchcoders/transer.sh}"
  14. echo "variables after applying defaults:"
  15. echo "DOCKERFILE_PATH: $DOCKERFILE_PATH"
  16. echo "IMAGE_NAME: $IMAGE_NAME"
  17. echo
  18. export PATH="$PWD/docker:$PATH"
  19. # =>
  20. # https://hub.docker.com/u/arm64v8/
  21. # https://hub.docker.com/u/arm32v7/
  22. # https://hub.docker.com/u/arm32v6/
  23. # https://hub.docker.com/u/arm32v5/
  24. declare -A base_image_prefix_map=( ["aarch64"]="arm64v8/" ["arm"]="arm32v5/" ["amd64"]="")
  25. # => dpkg -L qemu-user-static | grep /usr/bin/
  26. declare -A docker_qemu_arch_map=( ["aarch64"]="aarch64" ["arm"]="arm" ["amd64"]="x86_64")
  27. # => https://github.com/docker/docker-ce/blob/76ac3a4952a9c03f04f26fc88d3160acd51d1702/components/cli/cli/command/manifest/util.go#L22
  28. declare -A docker_to_manifest_map=( ["aarch64"]="arm64" ["arm"]="arm" ["amd64"]="amd64")
  29. # what we want to build
  30. build_architectures=(amd64 aarch64 arm)
  31. verified_build_architectures=()
  32. verified_build_architectures+=("$(docker version -f '{{.Server.Arch}}')")
  33. # what we can build
  34. for arch in ${build_architectures[@]}; do
  35. if [ -f "qemu-${docker_qemu_arch_map[${arch}]}-static" ]; then
  36. echo "qemu binary for $arch found";
  37. verified_build_architectures+=($arch)
  38. fi
  39. done
  40. echo $verified_build_architectures
  41. set -u
  42. docker -v
  43. echo