On 10/28/2026 4:08 PM, 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
> 
> v5
> --
> 
> - fix build with docker (missing context)
> 
> 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.
> 
> 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
> 

This was merged into master (61436f5ff1c4e5ee8f60fa1a37962a60f73ea7a4).

Regards,
Pierrick

Reply via email to