Hacker News new | ask | show | jobs
by vbezhenar 1549 days ago
My issue is that our company uses Gitlab for CI builds and Gitlab doesn't have ARM runners. And I'm the only guy with Macbook, so using some Mac Mini for Gitlab CI runner is not possible. I'm rebuilding images for myself that I'm currently working on, but that's tedious and not very productive spending of time.

Another alternative that I'm currently considering is to rent some VPS in my city and use it as docker host. I'll be dependant on the Internet, so that's not very nice, but might be an option to consider.

I wish Apple would extend Rosetta to VM support. That's really missing piece of puzzle when it comes to migrating to ARM. qemu is not good enough.

8 comments

You don't need an ARM runner to produce ARM images. Docker buildx supports building for more than one architecture through qemu: https://github.com/microsoft/azure-pipelines-tasks/issues/12...
I thought building an ARM64 docker image with qemu on a Ryzen 9590X would be a good way to offload building docker images from my Raspberry Pi 4. My benchmarks in building an ARM64 Nginx image was the following:

Ryzen 9590X: 20:09 (20 min 9 sec)

Raspberry Pi 3: 15:46

Raspberry Pi 4 8GB: 4:34

That settled it for me.

For some reason I never considered RPi4 as build server. Thanks for your comment, I have one spare and will try to utilize it as gitlab runner.
Yes but on the ryzen (assuming you meant 5950x) you can build build 16 of them at once... Make sure you give qemu the right parameters too.
It's so weird to see that Java was architected to bend over backwards to be able to run on multiple CPU architectures, which was a feature nobody actually used for decades (well mobile devs did, but they were still targeting a homogenous arch), and now, when there's actually demand for this from the backend side, it doesn't work due to other components in the system.
I worked on an enterprise software system written in Java, our customers ran it on Solaris, Linux, AIX, and some even ran it on Windows, and developers on OS X. Same binaries, worked everywhere.
If you have a AWS (or Oracle Cloud has it too) presence, they have ARM VMs you can get. You could probably self-host a build agent on one of those to do your ARM builds.
We are running gitlab-runner on an M1 Mac Mini now for iOS builds. Runs fine, was a little complicated getting React Native/Fastlane to compile the app but eventually got it running and is creating new builds almost every day. And we are using the Scaleway M1 machine so we can easily do remote management.
I really wish CI companies would step up - they are the missing link now. I run ARM locally and my servers run it too, but I have to work around missing ARM CI step.

At least CircleCI has machine ARM runners but not docker ones.

Gitlab has ARM binaries for Gitlab runner. I can’t speak for the shared runners you get access to on Gitlab.com but you could always run your own runner and connect it to your Gitlab.
> GitLab Runner officially supported binaries are available for the following architectures: > x86, AMD64, ARM64, ARM, s390x, ppc64le

https://docs.gitlab.com/runner/install/

You must be talking about shared runners in GitLab.com.

Checkout gitpod. This is my usecase for using them