Docker: Build and use musl-based binaries in alpine images to resolve glibc incompatibility issues (#19798)
* build: Install musl cross compilers as part of build Docker image * build: Build also musl packages in scripts/build/build.sh * scripts/build/build-all.sh: Build musl Linux targets * build: Upgrade build-container to 1.2.11 * build.go: De-duplicate code * build: Base Docker images on musl binaries
This commit is contained in:
@@ -74,7 +74,10 @@ FROM ubuntu:14.04
|
||||
ENV GOVERSION=1.13.1 \
|
||||
PATH=/usr/local/go/bin:$PATH \
|
||||
GOPATH=/go \
|
||||
NODEVERSION=10.14.2
|
||||
NODEVERSION=10.14.2 \
|
||||
CHKSUM_ARMV7_MUSL=3043bd16a0287b02f3f1045ec5f7fa42bd47bd8329183fc52b179dbb80a56d5f \
|
||||
CHKSUM_ARMV8_MUSL=1a935561ebe3155bfd02b1b25cd7533c81906dd47b1de1fa43b74209130b941c \
|
||||
CHKSUM_AMD64_MUSL=0fada482750176671d24c31b944fae7c3bf0a826011b3decc12d47b21c3cb5c2
|
||||
|
||||
COPY --from=toolchain /tmp/x86_64-centos6-linux-gnu.tar.xz /tmp/
|
||||
COPY --from=toolchain /tmp/osxcross.tar.xz /tmp/
|
||||
@@ -108,6 +111,21 @@ RUN apt-get update && \
|
||||
| tar -xz -C /usr/local && \
|
||||
git clone https://github.com/raspberrypi/tools.git /opt/rpi-tools --depth=1
|
||||
|
||||
# Install musl cross compilers
|
||||
RUN cd /tmp && \
|
||||
curl -O https://musl.cc/arm-linux-musleabihf-cross.tgz && \
|
||||
[ "$(sha256sum arm-linux-musleabihf-cross.tgz|cut -f1 -d ' ')" = "$CHKSUM_ARMV7_MUSL" ] && \
|
||||
tar xf arm-linux-musleabihf-cross.tgz && \
|
||||
rm arm-linux-musleabihf-cross.tgz && \
|
||||
curl -O https://musl.cc/aarch64-linux-musl-cross.tgz && \
|
||||
[ "$(sha256sum aarch64-linux-musl-cross.tgz|cut -f1 -d ' ')" = "$CHKSUM_ARMV8_MUSL" ] && \
|
||||
tar xf aarch64-linux-musl-cross.tgz && \
|
||||
rm aarch64-linux-musl-cross.tgz && \
|
||||
curl -O https://musl.cc/x86_64-linux-musl-cross.tgz && \
|
||||
[ "$(sha256sum x86_64-linux-musl-cross.tgz|cut -f1 -d ' ')" = "$CHKSUM_AMD64_MUSL" ] && \
|
||||
tar xf x86_64-linux-musl-cross.tgz && \
|
||||
rm x86_64-linux-musl-cross.tgz
|
||||
|
||||
RUN apt-get install -y \
|
||||
gcc libc-dev make && \
|
||||
gpg2 --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB && \
|
||||
|
||||
Reference in New Issue
Block a user