diff --git a/.circleci/config.yml b/.circleci/config.yml index 1014f8c..91c4836 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -8,4 +8,4 @@ jobs: - setup_remote_docker - run: name: Build Docker image - command: docker build . --pull + command: ./build.sh diff --git a/Dockerfile b/Dockerfile index a0d5e6d..ea32521 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,19 @@ -FROM alpine:3.11 +#Add qemu function for supporting multiarch +ARG IMAGEARCH +FROM alpine:3.12 as qemu +RUN apk add --no-cache curl +ARG QEMUVERSION=4.0.0 +ARG QEMUARCH + +SHELL ["/bin/ash", "-o", "pipefail", "-c"] + +RUN curl -fsSL https://github.com/multiarch/qemu-user-static/releases/download/v${QEMUVERSION}/qemu-${QEMUARCH}-static.tar.gz | tar zxvf - -C /usr/bin +RUN chmod +x /usr/bin/qemu-* + +FROM ${IMAGEARCH}alpine:3.11 +ARG QEMUARCH +COPY --from=qemu /usr/bin/qemu-${QEMUARCH}-static /usr/bin/ + RUN apk --no-cache add alpine-sdk coreutils cmake \ && adduser -G abuild -g "Alpine Package Builder" -s /bin/ash -D builder \ && echo "builder ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers \ diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..0a091cd --- /dev/null +++ b/build.sh @@ -0,0 +1,14 @@ +#!/bin/sh +set -e + +export DOCKER_CLI_EXPERIMENTAL=enabled +docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + +# Build x86 images +docker build --build-arg IMAGEARCH= \ + --build-arg QEMUARCH="x86_64" \ + --file Dockerfile --tag sgerrand/alpine-abuilder:amd64 . --pull +# Build arm64 image +docker build --build-arg IMAGEARCH="arm64v8/" \ + --build-arg QEMUARCH="aarch64" \ + --file Dockerfile --tag sgerrand/alpine-abuilder:arm64 . --pull