diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 96d5015..c1bfa07 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -19,8 +19,8 @@ build: stage: build script: - docker run --rm --privileged multiarch/qemu-user-static:register --reset - - docker build --platform linux/arm64/v8 --pull -f Dockerfile --build-arg BUILDDATE=$CI_JOB_TIMESTAMP --build-arg FROM_ARCH=arm64v8 --build-arg QEMU_ARCH=aarch64 -t $IMAGE:arm64v8-${IMAGE_TAG} . - - docker build --platform linux/arm/v7 --pull -f Dockerfile --build-arg BUILDDATE=$CI_JOB_TIMESTAMP --build-arg FROM_ARCH=arm32v7 --build-arg QEMU_ARCH=arm -t $IMAGE:arm32v7-${IMAGE_TAG} . + - docker build --platform linux/arm64/v8 --pull -f Dockerfile --build-arg BUILDDATE=$CI_JOB_TIMESTAMP --build-arg FROM_ARCH=arm64v8 -t $IMAGE:arm64v8-${IMAGE_TAG} . + - docker build --platform linux/arm/v7 --pull -f Dockerfile --build-arg BUILDDATE=$CI_JOB_TIMESTAMP --build-arg FROM_ARCH=arm32v7 -t $IMAGE:arm32v7-${IMAGE_TAG} . - docker build --pull --build-arg BUILDDATE=$CI_JOB_TIMESTAMP -t $IMAGE:amd64-${IMAGE_TAG} . - docker push $IMAGE:arm64v8-${IMAGE_TAG} - docker push $IMAGE:arm32v7-${IMAGE_TAG} diff --git a/Dockerfile b/Dockerfile index 2a6deb0..0dcb3d7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,16 +1,19 @@ ARG FROM_ARCH=amd64 -ARG QEMU_ARCH=x86_64 +# Multi-stage build, see https://docs.docker.com/develop/develop-images/multistage-build/ FROM alpine AS builder -ENV QEMU_ARCH=${QEMU_ARCH:-x86_64} -ADD https://github.com/multiarch/qemu-user-static/releases/download/v5.2.0-2/qemu-$QEMU_ARCH-static.tar.gz . -RUN tar zxvf qemu-$QEMU_ARCH-static.tar.gz --strip-components 1 +# Download QEMU +ADD https://github.com/balena-io/qemu/releases/download/v5.2.0%2Bbalena4/qemu-5.2.0.balena4-arm.tar.gz . +RUN tar zxvf qemu-5.2.0.balena4-arm.tar.gz --strip-components 1 +ADD https://github.com/balena-io/qemu/releases/download/v5.2.0%2Bbalena4/qemu-5.2.0.balena4-aarch64.tar.gz . +RUN tar zxvf qemu-5.2.0.balena4-aarch64.tar.gz --strip-components 1 -FROM lsiobase/alpine:${FROM_ARCH}-3.13 +FROM lsiobase/alpine:$FROM_ARCH-3.13 -ENV QEMU_ARCH=${QEMU_ARCH:-x86_64} -COPY --from=builder qemu-$QEMU_ARCH-static /usr/bin +# Add QEMU +COPY --from=builder qemu-arm-static /usr/bin +COPY --from=builder qemu-aarch64-static /usr/bin ARG BUILDDATE ENV BUILDDATEENV=${BUILDDATE}