From fd9aee1f0198faabc2fcf47bd22cdcba5b4f4235 Mon Sep 17 00:00:00 2001 From: Andras Gemes Date: Fri, 20 Dec 2024 11:23:14 +0100 Subject: [PATCH] ci: use prebuilt docker image in arm64 build workflow --- .github/workflows/build-arm64.yml | 6 +++--- README.md | 12 +++++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-arm64.yml b/.github/workflows/build-arm64.yml index f31459e..eb238a9 100644 --- a/.github/workflows/build-arm64.yml +++ b/.github/workflows/build-arm64.yml @@ -15,14 +15,14 @@ jobs: - name: Set up Docker buildx uses: docker/setup-buildx-action@v1 - - name: Build ARM64 image + - name: Pull ARM64 image run: | - docker build --platform=linux/arm64 -t arm64-env . + docker pull gemesa/arm64:latest - name: Run ARM64 container run: | docker run --platform=linux/arm64 \ --rm \ -v "${{ github.workspace }}":/workspace \ - arm64-env \ + gemesa/arm64:latest \ make arm64 diff --git a/README.md b/README.md index 8495dee..7fc7123 100644 --- a/README.md +++ b/README.md @@ -82,9 +82,15 @@ $ make x64 I have an x64 PC so to quickly build and run ARM64 binaries my preference is to use an ARM64v8 Docker container. This setup has some limitations though as it does not implement `ptrace` so `strace` and `gdb` cannot be used. ``` -$ sudo docker build --platform=linux/arm64 -t arm64-env . -$ sudo docker run --platform=linux/arm64 --user $(id -u):$(id -g) --rm -it -v "$(pwd)":/workspace arm64-env /bin/bash -# make arm64 +$ sudo docker build --platform=linux/arm64 -t arm64 . +$ sudo docker run --platform=linux/arm64 --user $(id -u):$(id -g) --rm -it -v "$(pwd)":/workspace arm64 /bin/bash +$ make arm64 +``` + +The image is also available on Docker Hub: + +``` +$ docker pull gemesa/arm64:latest ``` Alternatively an ARM64 cross-compiler and QEMU could also be used (Docker is doing something similar under the hood).