Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docker: add support for multiple architectures #82

Open
danieletorelli opened this issue Jan 1, 2024 · 3 comments
Open

Docker: add support for multiple architectures #82

danieletorelli opened this issue Jan 1, 2024 · 3 comments

Comments

@danieletorelli
Copy link

At the moment the ghcr.io/natesales/q images are built only for linux/amd64. It would be great to add multi-arch support for at least linux/arm64 and linux/arm/v7 as well.

@polarathene
Copy link

linux/arm/v7

That is obsolete by now? What devices do you have in mind where it's still relevant? A RPi 3 with 64-bit OS install is ARM64 / v8 compatible IIRC, and that is a device from 2016?

@danieletorelli
Copy link
Author

linux/arm/v7

That is obsolete by now? What devices do you have in mind where it's still relevant? A RPi 3 with 64-bit OS install is ARM64 / v8 compatible IIRC, and that is a device from 2016?

I'm not sure about it: I have a working RPi 2 myself like many other people I know and it still works great and with very low power.
It doesn't cost anything to build an image for it IMHO.

@polarathene
Copy link

EDIT: After typing out below, I see that it's not really a problem for this project like others. Ignore it 😄


I have a working RPi 2 myself
like many other people I know and it still works great

That's great, but it doesn't change the fact that it's incredibly dated to support. I'm sure you'll find plenty of projects dropping support for ARMv7 if they haven't already. It's fairly cheap to get an ARMv8 or newer device, or build the image/binary yourself (or through a community) - although I understand the inconvenience vs ease of official sources.

It doesn't cost anything to build an image for it IMHO.

It costs storage, network bandwidth and CI time. That's fairly accessible and "free" with services like Github true.

  • For actual project maintainers the more likely impact is weight to their limited cache storage, this was one of the reasons a project I maintain was motivated to drop ARMv7 (we had only a few users interested in it, a very small % of our audience to justify). Each architecture adds to the cache weight AFAIK with dependencies to compile
  • Another issue in CI workflows is it can slow down build times. ARM64 is slow to emulate in the project I maintain, we don't have cross-compilation available there. These affect the CI checks for progressing PRs or other activity and can contribute towards bottlenecks that delay actions by maintainers.

That said, you could contribute a PR if you don't feel it's a maintenance concern for the project.

  • Just had a look and there doesn't seem to be any cache usage.
  • Build times for release workflow is low only 3 minutes, I'm used to much longer times 😓
  • GoReleaser is used, so just adding the arch there should be sufficient. The docker image build config I'm not familiar with this tool but should be fairly basic to add armv7, since the Dockerfile is basic and just copies the binary over, no distributed runner builds from the looks of it?

It's a bit odd since it looks like there is configuration there already for ARM64 images, but the ARM64 images are not being published (you can see an extra tab when there is).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants