Fix Docker builds for arm
This commit is contained in:
parent
c7c1a3ebae
commit
ef063df34d
|
@ -28,6 +28,8 @@ RUN chmod +x /tmp/install_build_dependencies.sh && /tmp/install_build_dependenci
|
|||
|
||||
COPY docker/go_wrapper.sh /go/bin/go
|
||||
RUN chmod +x /go/bin/go
|
||||
ENV GOPATH="/go"
|
||||
ENV PATH="${GOPATH}/bin:${PATH}"
|
||||
|
||||
ENV CGO_ENABLED 1
|
||||
|
||||
|
@ -41,7 +43,7 @@ COPY api/go.mod api/go.sum /app/
|
|||
RUN go mod download
|
||||
|
||||
# Patch go-face
|
||||
RUN sed -i 's/-march=native//g' /root/go/pkg/mod/github.com/!kagami/go-face*/face.go
|
||||
RUN sed -i 's/-march=native//g' ${GOPATH}/pkg/mod/github.com/!kagami/go-face*/face.go
|
||||
|
||||
# Build dependencies that use CGO
|
||||
RUN go install \
|
||||
|
|
|
@ -66,39 +66,33 @@ fi
|
|||
if [ "$CGO_ENABLED" = "1" ]; then
|
||||
case "$GOARCH" in
|
||||
"amd64")
|
||||
export CC="x86_64-linux-gnu-gcc"
|
||||
export CXX="x86_64-linux-gnu-g++"
|
||||
export COMPILER_ARCH="x86_64-linux-gnu"
|
||||
;;
|
||||
"ppc64le")
|
||||
export CC="powerpc64le-linux-gnu-gcc"
|
||||
export CXX="powerpc64le-linux-gnu-g++"
|
||||
export COMPILER_ARCH="powerpc64le-linux-gnu"
|
||||
;;
|
||||
"s390x")
|
||||
export CC="s390x-linux-gnu-gcc"
|
||||
export CXX="s390x-linux-gnu-g++"
|
||||
export COMPILER_ARCH="s390x-linux-gnu"
|
||||
;;
|
||||
"arm64")
|
||||
export CC="aarch64-linux-gnu-gcc"
|
||||
export CXX="aarch64-linux-gnu-g++"
|
||||
export COMPILER_ARCH="aarch64-linux-gnu"
|
||||
;;
|
||||
"arm")
|
||||
case "$GOARM" in
|
||||
"5")
|
||||
export CC="arm-linux-gnueabi-gcc"
|
||||
export CXX="arm-linux-gnueabi-g++"
|
||||
export COMPILER_ARCH="arm-linux-gnueabi"
|
||||
;;
|
||||
*)
|
||||
export CC="arm-linux-gnueabihf-gcc"
|
||||
export CXX="arm-linux-gnueabihf-g++"
|
||||
export COMPILER_ARCH="arm-linux-gnueabihf"
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if [ "$GOOS" = "wasi" ]; then
|
||||
export GOOS="js"
|
||||
fi
|
||||
export CC="${COMPILER_ARCH}-gcc"
|
||||
export CXX="${COMPILER_ARCH}-g++"
|
||||
export PKG_CONFIG_PATH="/usr/lib/${COMPILER_ARCH}/pkgconfig/"
|
||||
|
||||
if [ -z "$GOBIN" ] && [ -n "$GOPATH" ] && [ -n "$GOARCH" ] && [ -n "$GOOS" ]; then
|
||||
export PATH=${GOPATH}/bin/${GOOS}_${GOARCH}:${PATH}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
#!/bin/sh
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
if [ "$TARGETPLATFORM" == "linux/arm64" ]; then
|
||||
dpkg --add-architecture arm64
|
||||
|
@ -12,26 +13,27 @@ fi
|
|||
|
||||
apt-get update
|
||||
|
||||
# Install G++/GCC cross compilers
|
||||
if [ "$DEBIAN_ARCH" == "arm64" ]; then
|
||||
apt-get install -y \
|
||||
g++-aarch64-linux-gnu \
|
||||
libc6-dev-arm64-cross
|
||||
elif [ "$DEBIAN_ARCH" == "armhf" ]; then
|
||||
apt-get install -y \
|
||||
g++-arm-linux-gnueabihf \
|
||||
libc6-dev-armhf-cross
|
||||
fi
|
||||
|
||||
# Install Golang
|
||||
apt-get install -y ca-certificates golang
|
||||
|
||||
# Install G++/GCC cross compilers
|
||||
# Install go-face dependencies and libheif for HEIF media decoding
|
||||
apt-get install -y \
|
||||
g++-aarch64-linux-gnu \
|
||||
libc6-dev-arm64-cross \
|
||||
g++-arm-linux-gnueabihf \
|
||||
libc6-dev-armhf-cross
|
||||
|
||||
# Install go-face dependencies
|
||||
apt-get install -y \
|
||||
libdlib-dev:$DEBIAN_ARCH \
|
||||
libblas-dev:$DEBIAN_ARCH \
|
||||
liblapack-dev:$DEBIAN_ARCH \
|
||||
libjpeg62-turbo-dev:$DEBIAN_ARCH \
|
||||
|
||||
# Install libheif for HEIF media decoding
|
||||
apt-get install -y \
|
||||
libheif-dev:$DEBIAN_ARCH
|
||||
libdlib-dev:${DEBIAN_ARCH} \
|
||||
libblas-dev:${DEBIAN_ARCH} \
|
||||
liblapack-dev:${DEBIAN_ARCH} \
|
||||
libjpeg-dev:${DEBIAN_ARCH} \
|
||||
libheif-dev:${DEBIAN_ARCH}
|
||||
|
||||
# Cleanup
|
||||
apt-get clean
|
||||
|
|
Loading…
Reference in New Issue