An extension of meta-virtualization that provides:
- Distro targets for building containers
pokyless
(glibc)rocky
(musl)
- Machine targets for building containers
amd64-container
arm64-container
armv7-container
- Package group for using podman
The work here related to building containers with yocto/oe is based on meta-container-demo.
With the distro & machine targets mentioned above, one can build distroless app containers. The pokyless
distro based on poky
but it targets a dummy linux kernel and removes a bunch of DISTRO_FEATURES
. The rocky
distro is identical to pokyless
but uses musl
instead of glibc
. Building the hello world flask app container provided by meta-virtualization
results in a container tar image of about 10-12MB.
There are a number of talks that have been done related to this topic over the years (old to new).
- Building Container Images with OpenEmbedded and the Yocto Project - Scott Murray
- Integrating Docker containers in Yocto by Sandra Tobajas, Sébastien LE STUM
- Containers built for Embedded Systems and Servers
- Embedded Containers as a Deployment Component via the Yocto Project - Bruce Ashfield, AMD
- YPDD 2023 - meta-virtualization: moving past source-only, basic containers
- YPS 2023.11 - 2023/11/28 - Rudolf Streif - User Space Hands-on Class - Embedded Containers