From c03280b09e6e4146ccc31089e96ef64d5f65bde0 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Wed, 23 Jan 2019 01:08:08 +0100 Subject: [PATCH] Support AArch64 --- .travis.yml | 5 +++++ Dockerfile => Dockerfile.arm32v7 | 0 Dockerfile.arm64v8 | 28 ++++++++++++++++++++++++++++ build | 5 +++-- push | 2 +- 5 files changed, 37 insertions(+), 3 deletions(-) rename Dockerfile => Dockerfile.arm32v7 (100%) create mode 100644 Dockerfile.arm64v8 diff --git a/.travis.yml b/.travis.yml index 137e115..405c2de 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,13 +5,18 @@ go: - stable services: - docker +env: + - BUILD_ARCH=arm32v7 + - BUILD_ARCH=arm64v8 install: - go get github.com/estesp/manifest-tool - 'echo ''{ "experimental": true }'' | sudo tee /etc/docker/daemon.json' - sudo systemctl restart docker - sudo apt-get --yes --no-install-recommends install qemu-user-static - sudo su -c 'echo -1 > /proc/sys/fs/binfmt_misc/qemu-arm' + - sudo su -c 'echo -1 > /proc/sys/fs/binfmt_misc/qemu-aarch64' - echo ':qemu-arm:M:0:\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-arm-static:CF' | sudo tee -a /proc/sys/fs/binfmt_misc/register + - echo ':qemu-aarch64:M:0:\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-aarch64-static:CF' | sudo tee -a /proc/sys/fs/binfmt_misc/register script: - ./build after_success: diff --git a/Dockerfile b/Dockerfile.arm32v7 similarity index 100% rename from Dockerfile rename to Dockerfile.arm32v7 diff --git a/Dockerfile.arm64v8 b/Dockerfile.arm64v8 new file mode 100644 index 0000000..08ede4e --- /dev/null +++ b/Dockerfile.arm64v8 @@ -0,0 +1,28 @@ +FROM agners/archlinuxarm-arm64v8 + +WORKDIR /archlinux + +RUN mkdir -p /archlinux/rootfs + +COPY pacstrap-docker /archlinux/ + +RUN pacman-key --init +RUN pacman-key --populate archlinuxarm + +RUN ./pacstrap-docker /archlinux/rootfs \ + bash sed gzip pacman + +# Remove current pacman database, likely outdated very soon +RUN rm rootfs/var/lib/pacman/sync/* + +FROM scratch +COPY --from=0 /archlinux/rootfs/ / +COPY rootfs/ / + +ENV LANG=en_US.UTF-8 + +RUN locale-gen +RUN pacman-key --init +RUN pacman-key --populate archlinuxarm + +CMD ["/usr/bin/bash"] diff --git a/build b/build index 60fbd34..0beea81 100755 --- a/build +++ b/build @@ -1,11 +1,12 @@ #!/bin/bash -ex -DOCKER_ARCH=arm32v7 +DOCKER_ARCH=${BUILD_ARCH:-arm32v7} DOCKER_ORG=agners DOCKER_IMAGE=archlinuxarm-${DOCKER_ARCH} TAG_DATE=$(date +'%Y%m%d') docker build -t $DOCKER_ORG/$DOCKER_IMAGE \ - -t $DOCKER_ORG/$DOCKER_IMAGE:$TAG_DATE . + -t $DOCKER_ORG/$DOCKER_IMAGE:$TAG_DATE \ + -f Dockerfile.${DOCKER_ARCH} . diff --git a/push b/push index 3c25578..da6eb10 100755 --- a/push +++ b/push @@ -1,6 +1,6 @@ #!/bin/bash -ex -DOCKER_ARCH=arm32v7 +DOCKER_ARCH=${BUILD_ARCH:-arm32v7} DOCKER_ORG=agners DOCKER_IMAGE=archlinuxarm-${DOCKER_ARCH}