From f6993b5105222b86184df1406b594d22c89609dd Mon Sep 17 00:00:00 2001 From: Tom Wieczorek Date: Fri, 15 Aug 2025 12:37:17 +0200 Subject: [PATCH] Add ARMv7 support to actions-runner container images Signed-off-by: Tom Wieczorek --- runner/Makefile | 2 +- runner/actions-runner-dind-rootless.ubuntu-20.04.dockerfile | 1 + runner/actions-runner-dind-rootless.ubuntu-22.04.dockerfile | 1 + runner/actions-runner-dind-rootless.ubuntu-24.04.dockerfile | 1 + runner/actions-runner-dind.ubuntu-20.04.dockerfile | 2 ++ runner/actions-runner-dind.ubuntu-22.04.dockerfile | 2 ++ runner/actions-runner-dind.ubuntu-24.04.dockerfile | 2 ++ runner/actions-runner.ubuntu-20.04.dockerfile | 2 ++ runner/actions-runner.ubuntu-22.04.dockerfile | 2 ++ runner/actions-runner.ubuntu-24.04.dockerfile | 2 ++ 10 files changed, 16 insertions(+), 1 deletion(-) diff --git a/runner/Makefile b/runner/Makefile index a470870f..6dc468e6 100644 --- a/runner/Makefile +++ b/runner/Makefile @@ -12,7 +12,7 @@ DOCKER_VERSION ?= 24.0.7 # default list of platforms for which multiarch image is built ifeq (${PLATFORMS}, ) - export PLATFORMS="linux/amd64,linux/arm64" + export PLATFORMS="linux/amd64,linux/arm64,linux/arm/v7" endif # if IMG_RESULT is unspecified, by default the image will be pushed to registry diff --git a/runner/actions-runner-dind-rootless.ubuntu-20.04.dockerfile b/runner/actions-runner-dind-rootless.ubuntu-20.04.dockerfile index 292c6d23..d5d76b65 100644 --- a/runner/actions-runner-dind-rootless.ubuntu-20.04.dockerfile +++ b/runner/actions-runner-dind-rootless.ubuntu-20.04.dockerfile @@ -136,6 +136,7 @@ RUN export SKIP_IPTABLES=1 \ RUN export ARCH=$(echo ${TARGETPLATFORM} | cut -d / -f2) \ && if [ "$ARCH" = "arm64" ]; then export ARCH=aarch64 ; fi \ && if [ "$ARCH" = "amd64" ] || [ "$ARCH" = "i386" ]; then export ARCH=x86_64 ; fi \ + && if [ "$ARCH" = "arm" ]; then export ARCH=armv7 ; fi \ && mkdir -p /home/runner/.docker/cli-plugins \ && curl -fLo /home/runner/.docker/cli-plugins/docker-compose https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-linux-${ARCH} \ && chmod +x /home/runner/.docker/cli-plugins/docker-compose \ diff --git a/runner/actions-runner-dind-rootless.ubuntu-22.04.dockerfile b/runner/actions-runner-dind-rootless.ubuntu-22.04.dockerfile index 565f8ce6..484b1e6f 100644 --- a/runner/actions-runner-dind-rootless.ubuntu-22.04.dockerfile +++ b/runner/actions-runner-dind-rootless.ubuntu-22.04.dockerfile @@ -114,6 +114,7 @@ RUN export SKIP_IPTABLES=1 \ RUN export ARCH=$(echo ${TARGETPLATFORM} | cut -d / -f2) \ && if [ "$ARCH" = "arm64" ]; then export ARCH=aarch64 ; fi \ && if [ "$ARCH" = "amd64" ] || [ "$ARCH" = "i386" ]; then export ARCH=x86_64 ; fi \ + && if [ "$ARCH" = "arm" ]; then export ARCH=armv7 ; fi \ && mkdir -p /home/runner/.docker/cli-plugins \ && curl -fLo /home/runner/.docker/cli-plugins/docker-compose https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-linux-${ARCH} \ && chmod +x /home/runner/.docker/cli-plugins/docker-compose \ diff --git a/runner/actions-runner-dind-rootless.ubuntu-24.04.dockerfile b/runner/actions-runner-dind-rootless.ubuntu-24.04.dockerfile index ce66c69b..1ffe4a85 100644 --- a/runner/actions-runner-dind-rootless.ubuntu-24.04.dockerfile +++ b/runner/actions-runner-dind-rootless.ubuntu-24.04.dockerfile @@ -114,6 +114,7 @@ RUN export SKIP_IPTABLES=1 \ RUN export ARCH=$(echo ${TARGETPLATFORM} | cut -d / -f2) \ && if [ "$ARCH" = "arm64" ]; then export ARCH=aarch64 ; fi \ && if [ "$ARCH" = "amd64" ] || [ "$ARCH" = "i386" ]; then export ARCH=x86_64 ; fi \ + && if [ "$ARCH" = "arm" ]; then export ARCH=armv7 ; fi \ && mkdir -p /home/runner/.docker/cli-plugins \ && curl -fLo /home/runner/.docker/cli-plugins/docker-compose https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-linux-${ARCH} \ && chmod +x /home/runner/.docker/cli-plugins/docker-compose \ diff --git a/runner/actions-runner-dind.ubuntu-20.04.dockerfile b/runner/actions-runner-dind.ubuntu-20.04.dockerfile index af5b7b90..05ede914 100644 --- a/runner/actions-runner-dind.ubuntu-20.04.dockerfile +++ b/runner/actions-runner-dind.ubuntu-20.04.dockerfile @@ -95,6 +95,7 @@ RUN set -vx; \ export ARCH=$(echo ${TARGETPLATFORM} | cut -d / -f2) \ && if [ "$ARCH" = "arm64" ]; then export ARCH=aarch64 ; fi \ && if [ "$ARCH" = "amd64" ] || [ "$ARCH" = "i386" ]; then export ARCH=x86_64 ; fi \ + && if [ "$ARCH" = "arm" ]; then export ARCH=armhf ; fi \ && curl -fLo docker.tgz https://download.docker.com/linux/static/${CHANNEL}/${ARCH}/docker-${DOCKER_VERSION}.tgz \ && tar zxvf docker.tgz \ && install -o root -g root -m 755 docker/* /usr/bin/ \ @@ -103,6 +104,7 @@ RUN set -vx; \ RUN export ARCH=$(echo ${TARGETPLATFORM} | cut -d / -f2) \ && if [ "$ARCH" = "arm64" ]; then export ARCH=aarch64 ; fi \ && if [ "$ARCH" = "amd64" ] || [ "$ARCH" = "i386" ]; then export ARCH=x86_64 ; fi \ + && if [ "$ARCH" = "arm" ]; then export ARCH=armv7 ; fi \ && mkdir -p /usr/libexec/docker/cli-plugins \ && curl -fLo /usr/libexec/docker/cli-plugins/docker-compose https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-linux-${ARCH} \ && chmod +x /usr/libexec/docker/cli-plugins/docker-compose \ diff --git a/runner/actions-runner-dind.ubuntu-22.04.dockerfile b/runner/actions-runner-dind.ubuntu-22.04.dockerfile index c4e5f0fd..7e66c519 100644 --- a/runner/actions-runner-dind.ubuntu-22.04.dockerfile +++ b/runner/actions-runner-dind.ubuntu-22.04.dockerfile @@ -71,6 +71,7 @@ RUN set -vx; \ export ARCH=$(echo ${TARGETPLATFORM} | cut -d / -f2) \ && if [ "$ARCH" = "arm64" ]; then export ARCH=aarch64 ; fi \ && if [ "$ARCH" = "amd64" ] || [ "$ARCH" = "i386" ]; then export ARCH=x86_64 ; fi \ + && if [ "$ARCH" = "arm" ]; then export ARCH=armhf ; fi \ && curl -fLo docker.tgz https://download.docker.com/linux/static/${CHANNEL}/${ARCH}/docker-${DOCKER_VERSION}.tgz \ && tar zxvf docker.tgz \ && install -o root -g root -m 755 docker/* /usr/bin/ \ @@ -79,6 +80,7 @@ RUN set -vx; \ RUN export ARCH=$(echo ${TARGETPLATFORM} | cut -d / -f2) \ && if [ "$ARCH" = "arm64" ]; then export ARCH=aarch64 ; fi \ && if [ "$ARCH" = "amd64" ] || [ "$ARCH" = "i386" ]; then export ARCH=x86_64 ; fi \ + && if [ "$ARCH" = "arm" ]; then export ARCH=armv7 ; fi \ && mkdir -p /usr/libexec/docker/cli-plugins \ && curl -fLo /usr/libexec/docker/cli-plugins/docker-compose https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-linux-${ARCH} \ && chmod +x /usr/libexec/docker/cli-plugins/docker-compose \ diff --git a/runner/actions-runner-dind.ubuntu-24.04.dockerfile b/runner/actions-runner-dind.ubuntu-24.04.dockerfile index 9995ddd8..92b47d39 100644 --- a/runner/actions-runner-dind.ubuntu-24.04.dockerfile +++ b/runner/actions-runner-dind.ubuntu-24.04.dockerfile @@ -71,6 +71,7 @@ RUN set -vx; \ export ARCH=$(echo ${TARGETPLATFORM} | cut -d / -f2) \ && if [ "$ARCH" = "arm64" ]; then export ARCH=aarch64 ; fi \ && if [ "$ARCH" = "amd64" ] || [ "$ARCH" = "i386" ]; then export ARCH=x86_64 ; fi \ + && if [ "$ARCH" = "arm" ]; then export ARCH=armhf ; fi \ && curl -fLo docker.tgz https://download.docker.com/linux/static/${CHANNEL}/${ARCH}/docker-${DOCKER_VERSION}.tgz \ && tar zxvf docker.tgz \ && install -o root -g root -m 755 docker/* /usr/bin/ \ @@ -79,6 +80,7 @@ RUN set -vx; \ RUN export ARCH=$(echo ${TARGETPLATFORM} | cut -d / -f2) \ && if [ "$ARCH" = "arm64" ]; then export ARCH=aarch64 ; fi \ && if [ "$ARCH" = "amd64" ] || [ "$ARCH" = "i386" ]; then export ARCH=x86_64 ; fi \ + && if [ "$ARCH" = "arm" ]; then export ARCH=armv7 ; fi \ && mkdir -p /usr/libexec/docker/cli-plugins \ && curl -fLo /usr/libexec/docker/cli-plugins/docker-compose https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-linux-${ARCH} \ && chmod +x /usr/libexec/docker/cli-plugins/docker-compose \ diff --git a/runner/actions-runner.ubuntu-20.04.dockerfile b/runner/actions-runner.ubuntu-20.04.dockerfile index 9de30a14..6ed1fd1f 100644 --- a/runner/actions-runner.ubuntu-20.04.dockerfile +++ b/runner/actions-runner.ubuntu-20.04.dockerfile @@ -92,6 +92,7 @@ RUN set -vx; \ export ARCH=$(echo ${TARGETPLATFORM} | cut -d / -f2) \ && if [ "$ARCH" = "arm64" ]; then export ARCH=aarch64 ; fi \ && if [ "$ARCH" = "amd64" ] || [ "$ARCH" = "i386" ]; then export ARCH=x86_64 ; fi \ + && if [ "$ARCH" = "arm" ]; then export ARCH=armhf ; fi \ && curl -fLo docker.tgz https://download.docker.com/linux/static/${CHANNEL}/${ARCH}/docker-${DOCKER_VERSION}.tgz \ && tar zxvf docker.tgz \ && install -o root -g root -m 755 docker/docker /usr/bin/docker \ @@ -100,6 +101,7 @@ RUN set -vx; \ RUN export ARCH=$(echo ${TARGETPLATFORM} | cut -d / -f2) \ && if [ "$ARCH" = "arm64" ]; then export ARCH=aarch64 ; fi \ && if [ "$ARCH" = "amd64" ] || [ "$ARCH" = "i386" ]; then export ARCH=x86_64 ; fi \ + && if [ "$ARCH" = "arm" ]; then export ARCH=armv7 ; fi \ && mkdir -p /usr/libexec/docker/cli-plugins \ && curl -fLo /usr/libexec/docker/cli-plugins/docker-compose https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-linux-${ARCH} \ && chmod +x /usr/libexec/docker/cli-plugins/docker-compose \ diff --git a/runner/actions-runner.ubuntu-22.04.dockerfile b/runner/actions-runner.ubuntu-22.04.dockerfile index f827e8da..bc898f98 100644 --- a/runner/actions-runner.ubuntu-22.04.dockerfile +++ b/runner/actions-runner.ubuntu-22.04.dockerfile @@ -69,6 +69,7 @@ RUN set -vx; \ export ARCH=$(echo ${TARGETPLATFORM} | cut -d / -f2) \ && if [ "$ARCH" = "arm64" ]; then export ARCH=aarch64 ; fi \ && if [ "$ARCH" = "amd64" ] || [ "$ARCH" = "i386" ]; then export ARCH=x86_64 ; fi \ + && if [ "$ARCH" = "arm" ]; then export ARCH=armhf ; fi \ && curl -fLo docker.tgz https://download.docker.com/linux/static/${CHANNEL}/${ARCH}/docker-${DOCKER_VERSION}.tgz \ && tar zxvf docker.tgz \ && install -o root -g root -m 755 docker/docker /usr/bin/docker \ @@ -77,6 +78,7 @@ RUN set -vx; \ RUN export ARCH=$(echo ${TARGETPLATFORM} | cut -d / -f2) \ && if [ "$ARCH" = "arm64" ]; then export ARCH=aarch64 ; fi \ && if [ "$ARCH" = "amd64" ] || [ "$ARCH" = "i386" ]; then export ARCH=x86_64 ; fi \ + && if [ "$ARCH" = "arm" ]; then export ARCH=armv7 ; fi \ && mkdir -p /usr/libexec/docker/cli-plugins \ && curl -fLo /usr/libexec/docker/cli-plugins/docker-compose https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-linux-${ARCH} \ && chmod +x /usr/libexec/docker/cli-plugins/docker-compose \ diff --git a/runner/actions-runner.ubuntu-24.04.dockerfile b/runner/actions-runner.ubuntu-24.04.dockerfile index a43ab7fb..23658d08 100644 --- a/runner/actions-runner.ubuntu-24.04.dockerfile +++ b/runner/actions-runner.ubuntu-24.04.dockerfile @@ -69,6 +69,7 @@ RUN set -vx; \ export ARCH=$(echo ${TARGETPLATFORM} | cut -d / -f2) \ && if [ "$ARCH" = "arm64" ]; then export ARCH=aarch64 ; fi \ && if [ "$ARCH" = "amd64" ] || [ "$ARCH" = "i386" ]; then export ARCH=x86_64 ; fi \ + && if [ "$ARCH" = "arm" ]; then export ARCH=armhf ; fi \ && curl -fLo docker.tgz https://download.docker.com/linux/static/${CHANNEL}/${ARCH}/docker-${DOCKER_VERSION}.tgz \ && tar zxvf docker.tgz \ && install -o root -g root -m 755 docker/docker /usr/bin/docker \ @@ -77,6 +78,7 @@ RUN set -vx; \ RUN export ARCH=$(echo ${TARGETPLATFORM} | cut -d / -f2) \ && if [ "$ARCH" = "arm64" ]; then export ARCH=aarch64 ; fi \ && if [ "$ARCH" = "amd64" ] || [ "$ARCH" = "i386" ]; then export ARCH=x86_64 ; fi \ + && if [ "$ARCH" = "arm" ]; then export ARCH=armv7 ; fi \ && mkdir -p /usr/libexec/docker/cli-plugins \ && curl -fLo /usr/libexec/docker/cli-plugins/docker-compose https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-linux-${ARCH} \ && chmod +x /usr/libexec/docker/cli-plugins/docker-compose \