The drone/drone-runner-docker does not include arm support

I’m trying to host a runner on a rpi 4, which is arm64, but I cannot pull the drone/drone-runner-docker image because it does not support linux/arm64.

Here on the install docs, it clearly states that arm64 is supported for runners:

Looking at the 1 tag on docker hub, you can see it only supports linux and windows amd64.


Even for the arm specific tags, none actually support arm64 either.

Is this not supported anymore?

1 Like

And here’s a support post that claims arm64 is supported as well: Drone/agent or drone/drone-runner-docker?

You are correct that the current drone-runner-docker published docker images appear to be amd64, this is a problem and we are working on fixing it.

However, the arm64 tagged images (like 1-linux-arm64) should run on arm64 machines. The runner docker image is built from the scratch image, and only arm64 binaries are copied in drone-runner-docker/Dockerfile.linux.arm64 at master · drone-runners/drone-runner-docker · GitHub

Are you seeing an error when you try to start the docker runner on arm64?

$ uname -a
Linux <hostname> 5.4.0-1066-raspi #76-Ubuntu SMP PREEMPT Mon Jun 27 11:02:52 UTC 2022 aarch64 aarch64 aarch64 GNU/Linux
$ docker run --detach \
>   --volume=/var/run/docker.sock:/var/run/docker.sock \
>   --env=... \
>   --restart=always \
>   --name=runner \
>   --platform=arm64 \
>   drone/drone-runner-docker:1-linux-arm
Unable to find image 'drone/drone-runner-docker:1-linux-arm' locally
1-linux-arm: Pulling from drone/drone-runner-docker
Digest: sha256:f16bd359639df05683a3802c8c0cc27965084f06d5a76f9851381c46c7916e05
Status: Image is up to date for drone/drone-runner-docker:1-linux-arm
docker: Error response from daemon: image with reference drone/drone-runner-docker:1-linux-arm was found but does not match the specified platform: wanted linux/arm64, actual: linux/amd64.
See 'docker run --help'.

Doesn’t work when you include the --platform flag, but it does if you exclude it. thanks for your help!

For anyone else who might find this issue, here’s my final run script that got it working:

$ docker run --detach \
>   --volume=/var/run/docker.sock:/var/run/docker.sock \
>   --env=DRONE_RPC_PROTO=https \
>   --env=DRONE_RPC_HOST=... \
>   --env=DRONE_RPC_SECRET=... \
>   --env=DRONE_RUNNER_NAME=linux-arm64 \
>   --restart=always \
>   --name=runner \
>   drone/drone-runner-docker:1-linux-arm
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested

Get a warning, but it seems to be working.

That said, I’d like to run this in docker swarm as a service… I can try using one of the arm specific tags as well, but I’m not sure this will work in swarm. I can live without that for now though! Thanks :+1:

any updated on this ?