build.sh 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #!/bin/bash
  2. set -e
  3. # This is pretty dirty hack. Building imgproxy under Qemu is pretty slow.
  4. # So we install Go binary native for the BUILDPLATFORM.
  5. if [[ $BUILDPLATFORM != $TARGETPLATFORM ]]; then
  6. case "$BUILDPLATFORM" in
  7. amd64 | "linux/amd64")
  8. BUILD_ARCH="amd64"
  9. ;;
  10. arm64 | "arm64/v8" | "linux/arm64" | "linux/arm64/v8")
  11. BUILD_ARCH="arm64"
  12. ;;
  13. *)
  14. echo "Unknown platform: $BUILDPLATFORM"
  15. exit 1
  16. esac
  17. case "$TARGETPLATFORM" in
  18. amd64 | "linux/amd64")
  19. TARGET_ARCH="amd64"
  20. ;;
  21. arm64 | "arm64/v8" | "linux/arm64" | "linux/arm64/v8")
  22. TARGET_ARCH="arm64"
  23. ;;
  24. *)
  25. echo "Unknown platform: $TARGETPLATFORM"
  26. exit 1
  27. esac
  28. GOLANG_VERSION=$(go version | sed -E 's/.*go([0-9]+\.[0-9]+(\.[0-9]+)?).*/\1/')
  29. rm -rf /usr/local/go
  30. dpkg --add-architecture ${BUILD_ARCH}
  31. apt-get update
  32. apt-get install -y --no-install-recommends libstdc++6:${BUILD_ARCH}
  33. curl -Ls https://golang.org/dl/go${GOLANG_VERSION}.linux-${BUILD_ARCH}.tar.gz \
  34. | tar -xzC /usr/local
  35. export CGO_ENABLED=1
  36. export GOOS=linux
  37. export GOARCH=$TARGET_ARCH
  38. fi
  39. go build -v -ldflags "-s -w" -o /usr/local/bin/imgproxy