mirror of
https://github.com/imgproxy/imgproxy.git
synced 2025-10-05 19:23:07 +02:00
Use native Go in Docker build
This commit is contained in:
@@ -5,7 +5,6 @@ tmp/
|
|||||||
imgproxy
|
imgproxy
|
||||||
|
|
||||||
docs/
|
docs/
|
||||||
docker/
|
|
||||||
examples/
|
examples/
|
||||||
LICENSE
|
LICENSE
|
||||||
README.md
|
README.md
|
||||||
|
@@ -2,8 +2,11 @@ ARG BASE_IMAGE_VERSION="v3.2.1"
|
|||||||
|
|
||||||
FROM darthsim/imgproxy-base:${BASE_IMAGE_VERSION}
|
FROM darthsim/imgproxy-base:${BASE_IMAGE_VERSION}
|
||||||
|
|
||||||
|
ARG BUILDPLATFORM
|
||||||
|
ARG TARGETPLATFORM
|
||||||
|
|
||||||
COPY . .
|
COPY . .
|
||||||
RUN ["bash", "-c", "go build -v -o /usr/local/bin/imgproxy"]
|
RUN docker/go.sh build -v -o /usr/local/bin/imgproxy
|
||||||
|
|
||||||
# ==================================================================================================
|
# ==================================================================================================
|
||||||
# Final image
|
# Final image
|
||||||
|
52
docker/go.sh
Executable file
52
docker/go.sh
Executable file
@@ -0,0 +1,52 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# This is pretty dirty hack. Building imgproxy under Qemu is pretty slow.
|
||||||
|
# So we install Go binary native for the BUILDPLATFORM.
|
||||||
|
if [[ $BUILDPLATFORM != $TARGETPLATFORM ]]; then
|
||||||
|
case "$BUILDPLATFORM" in
|
||||||
|
amd64 | "linux/amd64")
|
||||||
|
BUILD_ARCH="amd64"
|
||||||
|
;;
|
||||||
|
|
||||||
|
arm64 | "arm64/v8" | "linux/arm64" | "linux/arm64/v8")
|
||||||
|
BUILDPLATFORM="arm64"
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "Unknown platform: $BUILDPLATFORM"
|
||||||
|
exit 1
|
||||||
|
esac
|
||||||
|
|
||||||
|
case "$TARGETPLATFORM" in
|
||||||
|
amd64 | "linux/amd64")
|
||||||
|
TARGET_ARCH="amd64"
|
||||||
|
;;
|
||||||
|
|
||||||
|
arm64 | "arm64/v8" | "linux/arm64" | "linux/arm64/v8")
|
||||||
|
TARGET_ARCH="arm64"
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "Unknown platform: $TARGETPLATFORM"
|
||||||
|
exit 1
|
||||||
|
esac
|
||||||
|
|
||||||
|
GOLANG_VERSION=$(go version | sed -E 's/.*go([0-9]+\.[0-9]+\.[0-9]+).*/\1/')
|
||||||
|
|
||||||
|
rm -rf /usr/local/go
|
||||||
|
|
||||||
|
dpkg --add-architecture ${BUILD_ARCH}
|
||||||
|
apt-get update
|
||||||
|
apt-get install -y --no-install-recommends libstdc++6:${BUILD_ARCH}
|
||||||
|
|
||||||
|
curl -Ls https://golang.org/dl/go${GOLANG_VERSION}.linux-${BUILD_ARCH}.tar.gz \
|
||||||
|
| tar -xzC /usr/local
|
||||||
|
|
||||||
|
export CGO_ENABLED=1
|
||||||
|
export GOOS=linux
|
||||||
|
export GOARCH=$TARGET_ARCH
|
||||||
|
fi
|
||||||
|
|
||||||
|
go $@
|
Reference in New Issue
Block a user