-
Notifications
You must be signed in to change notification settings - Fork 47
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
Enable multiarch container builds #1471
Enable multiarch container builds #1471
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, needed for: rpm-software-management/mock#1347
@praiskup one thing that I am not sure about is if the tags for containers are the same archs references that fedora uses. like, is it aarch64 or arm64? 🤔 |
Mock uses just |
not sure, I'll reopen the PR against an upstream branch to test the action.
|
Yeah, actually, I don't know how the "build time" architecture selection is implemented. I rather meant that we (Mock) - at runtime - can use those images just fine (multiarch metadata/manifests). Hm. |
b46c826
to
b99f309
Compare
now it should be good to go. I tested it on aarch64 images on quay.io and it works. Some images will fail if the nightlies are not ready but all the fedora-dnf5 images should be fine |
- name: Install qemu dependency | ||
run: | | ||
sudo apt-get update | ||
sudo apt-get install -y qemu-user-static |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This installation is emulated though, at least it seems (with the emulated runtime for rpm, but also installation scriptlets, etc.). This could make quite some difference compared to the official Fedora images..?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
not sure, this is how it is documented in the buildah docs, see here and most importantly the multi-platform example
The reasons are that first, I believe github does not offer multi arch hosts (need to verify that).
Secondly, this should emulate the architecture of the host only, then the invoked command should be.
Here, the action was run on the test branch.
From what I see in Build Image:29 the command invoked seems right and it specifies the right platform --platform linux/amd64
. I tried on my laptop (it's arm) and works.
What difference should it do if we use emulated runtimes? I am not sure if we have other options in GH.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What difference should it do if we use emulated runtimes?
I don't have anything specific in mind. It's just a bad feeling :-) because it's quite common for Mock builds with forcearch to fail for various reasons.
For example, the entire DNF in the build container is emulated (including RPM) for additional package installation. DNF/RPM interacts with the underlying databases, and these databases are supposed to be utilized by native executors later on.
I don't know; I wouldn't love it if my overexcitement caused issues with our production Copr builders :-) nb, we should have a "natively built" DNF5-based default Fedora 41 image soon.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't know; I wouldn't love it if my overexcitement caused issues with our production Copr builders :-) nb, we should have a "natively built" DNF5-based default Fedora 41 image soon.
Agree, I'll dig some more I guess
b07d592
to
d9017a9
Compare
No description provided.