On 26/10/26 22:07, Pierrick Bouvier wrote:
This series was inspired by a recent post from Fabiano to provide container
images for migration tests:
https://lore.kernel.org/qemu-devel/[email protected]/T/#m353f119dc1a24fa437dde8a96d1891629e64303c
The idea to be able to build and run any QEMU (past) release with containers was
in my mind for some time, so I gave it a shot. Finally, it was easier than
expected to obtain a single dockerfile (with a few hacks) that works over all
our releases.
Images have the absolute minimal content possible. It's only qemu binaries,
artifacts (roms, keymap, ...), and libraries. There is no shell or any other
tool included. As a result, images have a size from 581MB (v3.1.0) to 1.1GB
(v11.1.2).
This series adds:
- a unique dockerfile to build any QEMU release. User has to provide an explicit
Ubuntu version when building a given QEMU version.
- A script build_release_container.sh which automatically detects which ubuntu
version a given release should be buildable on (based on date). It works
great, and the heuristic works for all our versions.
TLDR:
$ ./scripts/build_release_container.sh v3.1.0
$ podman run -it --rm qemu/v3.1.0 qemu-system-arm --version
v4
--
- supports build for any version (tag or sha-1)
- adds an optional parameter to build_release_container.sh to use an alternative
URL for QEMU repo
- simplified Dockerfile by supporting any version >= 3.1.0.
- removed patch 3 generating wrappers to published docker images
v3
--
- extend dockerfile to support ubuntu 12.04, and lower older revision we can
build from v1.6.1 to v0.12.0.
I haven't read the previous version discussions but so far this is
useful enough to me, so series:
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
For my bisections I have a crazy script that adapt the ./configure
options between commits (when they are added / removed / renamed
like in [*]); it only covers the options I use. I'm adding to my
TODO a remember to polish and post.
[*]
https://lore.kernel.org/qemu-devel/CAAdtpL7p+BG=o8b4+fjahgo4y-ongpcyx0n5gcldsyq8q9z...@mail.gmail.com/
v2
--
- fix generate_release_links.sh: was missing userns option for podman
- dockerfile: cleanup "|| true" and replaced with proper ifs
Pierrick Bouvier (2):
tests/docker/dockerfiles: add release.docker
scripts: add build_release_container.sh
scripts/build_release_container.sh | 63 +++++++++++++++++++++++++
tests/docker/dockerfiles/release.docker | 48 +++++++++++++++++++
2 files changed, 111 insertions(+)
create mode 100755 scripts/build_release_container.sh
create mode 100644 tests/docker/dockerfiles/release.docker