Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 

59 строки
2.3 KiB

  1. #!/usr/bin/env bash
  2. set -eu
  3. echo "build"
  4. source hooks/.config
  5. echo "Will build the following architectures: $verified_build_architectures"
  6. echo "⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯"
  7. for arch in ${verified_build_architectures[@]}; do
  8. echo "building $arch"
  9. echo "⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯"
  10. BASE_IMAGE_PREFIX="${base_image_prefix_map[${arch}]}"
  11. docker build \
  12. --build-arg BASE_IMAGE_PREFIX=${BASE_IMAGE_PREFIX} \
  13. --build-arg GOOS=linux \
  14. --build-arg GOARCH=${arch} \
  15. --build-arg ARCH=${arch} \
  16. --file $DOCKERFILE_PATH \
  17. --tag "${IMAGE_NAME}-${arch}" \
  18. .
  19. done
  20. echo "images built:"
  21. echo "⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯"
  22. docker image ls
  23. # https://github.com/moby/moby/issues/36552
  24. #
  25. tempdir=$(mktemp -d -t yolo.XXXXXXXX)
  26. cd $tempdir
  27. for arch in ${verified_build_architectures[@]}; do
  28. echo "yolo fixing platform $arch"
  29. echo "⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯"
  30. manifest_arch=${docker_to_manifest_map[${arch}]}
  31. docker save "${IMAGE_NAME}-${arch}"| tar xv
  32. for filename in */json; do
  33. [ -e "$filename" ] || continue
  34. jq --compact-output 'del(.architecture)' < "$filename" | sponge "$filename"
  35. done
  36. for filename in *.json; do
  37. [ -e "$filename" ] || continue
  38. ! [ $filename = "manifest.json" ] || continue
  39. jq --arg architecture "$manifest_arch" \
  40. --compact-output '.architecture=$architecture' < "$filename" | sponge "$filename"
  41. done
  42. tar cv . | docker load
  43. rm -rf $tempdir/*
  44. done
  45. trap "exit 1" HUP INT PIPE QUIT TERM
  46. trap "rm -rf $tempdir" EXIT