Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Pipelnes arm worker doesn't seem to work with 32-bit ARM hard-float (linux/arm/v7)

Stuart Longland
February 23, 2026

Hi,

I'm trying to build Docker images for Raspberry Pi 3-based computers running the 32-bit Debian OS (`armhf` architecture), this therefore requires that we use images that are built for the `linux/arm/v7` platform (in Docker parlance).

It's not commercially viable to visit each one and re-load the OS as much as I'd like to do so, we need to support the existing OS that is there.

I tried doing this and got met with an `exec format error`, which is the Linux kernel complaining that it did not understand the binary format.

I've reproduced this in a simple repository which I've published here for discussion (my workplace Bitbucket "work space" does not allow public repositories).

https://bitbucket.org/sjlongland/armv7-testing/src/master/

This repository pulls the base image we use in our builds, then tries to run `node --version` inside the container.  It should print the version of NodeJS downloaded.  A simple "hello world".

I have specified `arch: arm` in the pipeline configuration.  This *should* schedule the work on an ARM worker node, and in my fuller example, I indeed see it pulling `arm64` packages, so I know I configured that part right.

However, when it gets to the point of executing ARMv7 code, it crashes out at that point.

How do I build ARMv7 images on Bitbucket Pipelines?

Regards,

Stuart Longland

1 answer

0 votes
Stuart Longland
February 23, 2026

For the records, running one's own runner on a Raspberry Pi with a 64-bit OS, this repository _does_ work… however it doesn't work if I use Atlassian's hosted runners: which was the point of migrating to Pipelines in the first place.

"ARM" is a pretty broad term: it not only covers ARMv8+ which is 64-bit, but also ARMv6/v7 which is 32-bit, ARMv5 which is the original 32-bit soft-float "embedded" ABI; and theoretically covers the original ARM ABI used in the Acorn Archimedes, not to mention odd-balls like big-endian ARM (`armeb`).

Atlassian's documentation is very vague here just calling it "ARM" and not clarifying exactly which ABIs are supported.

So the issue is unresolved: `armv7` images do not work with Pipelines using the infrastructure.  The claimed "ARM" workers, do not appear to support ARMv7.

Stuart Longland
February 23, 2026

Also observed, if you run your own runner, and it’s busy, subsequent builds don’t wait for it to become free: they fail straight away.

Another reason why DIYing runners is undesirable.

Suggest an answer

Log in or Sign up to answer
DEPLOYMENT TYPE
CLOUD
PERMISSIONS LEVEL
Product Admin Site Admin
TAGS
AUG Leaders

Atlassian Community Events