Skip to content

Multi-arch Docker image (publish linux/arm64 alongside linux/amd64) #161

@aidannewsome

Description

@aidannewsome

Request

Would it be possible to publish a linux/arm64 variant of the 3dgi/roofer Docker image alongside the existing linux/amd64 one, so the multi-arch manifest covers both?

Why

The v1.0.0 release already ships a native arm64 binary as roofer-macOS-arm64-v1.0.0.tar.gz, so the build evidently works on arm64. But the Docker tag is amd64-only, which means anyone consuming roofer through the official image on Apple Silicon (or arm64 Linux cloud instances like AWS Graviton, Hetzner CAX, etc.) has to run it under emulation. In our case we use a multi-stage Dockerfile with COPY --from=3dgi/roofer:v1.0.0 ... to grab the binary into a downstream image, and we currently have to pin the whole stage to --platform=linux/amd64, which makes everything else in that stage emulated too. Native arm64 would be substantially faster for both local dev and arm64-based deployments.

What would change

If your CI builds for arm64 Linux as well (looks like you already produce arm64 binaries for macOS, so the arm64 toolchain is presumably already in your pipeline), pushing both architectures under the same tag via docker buildx build --platform linux/amd64,linux/arm64 --push would give a single multi-arch manifest. Existing amd64 consumers would be unaffected.

Happy to test arm64 builds against our pipeline if a release candidate is published.

Thanks for the work on roofer, and congrats on shipping v1.0.0.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type
No fields configured for issues without a type.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions