[WIP] Use flake to push to ghcr.io with multiplatform images #66
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi team,
I needed a native arm images for my M1 devcontainer, so I forked the repo and made a small PoC in my fork.
This is probably useable in upstream repo as well.
Can someone help decide if this PR is worth to be merged/follow up?
The general idea is to use
flake.nix
to build a matrix of images with a combination of nix channel x nix system.For each image per system, we push to ghcr.io.
For each images, we created multiplatform manifests that combines each system per images. This way, user can use a single unified tag and docker daemon will pick architecture that fits best, just like buildx. I used this approach because I don't know how to directly create multiarch images from nix dockertools.
I've tested this PoC for bash and devcontainer in my own repo.
Thanks for the comments!