diff options
| author | Bruce Ashfield <bruce.ashfield@gmail.com> | 2026-01-23 15:22:28 -0500 |
|---|---|---|
| committer | Bruce Ashfield <bruce.ashfield@gmail.com> | 2026-02-09 03:34:12 +0000 |
| commit | 0f5344e8c36eef45c4886a903bc5f0ccef305111 (patch) | |
| tree | 73f5f9cdff5117f815e8c70389a11a7d13f0ded5 /recipes-containers/vcontainer | |
| parent | cfab7d389bcbbf0327ced8b320ab03f07ec4fb65 (diff) | |
| download | meta-virtualization-0f5344e8c36eef45c4886a903bc5f0ccef305111.tar.gz | |
vcontainer: fix runc/crun conflict in multiconfig builds
The vruntime distro is used for multiconfig builds of both vdkr
(Docker/runc) and vpdmn (Podman/crun) images. When CONTAINER_PROFILE
or VIRTUAL-RUNTIME_container_runtime is set, containerd and podman
pull their preferred runtime via RDEPENDS, causing package conflicts.
Fix by having vruntime distro NOT participate in CONTAINER_PROFILE:
- Set VIRTUAL-RUNTIME_container_runtime="" to prevent automatic
runtime selection
- Explicitly install runc in vdkr-rootfs-image.bb
- Explicitly install crun in vpdmn-rootfs-image.bb
This allows both images to be built in the same multiconfig without
conflicts, while standard container-host images continue to use
CONTAINER_PROFILE normally.
Also add kernel-modules to vdkr-rootfs-image for overlay filesystem
support.
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Diffstat (limited to 'recipes-containers/vcontainer')
| -rw-r--r-- | recipes-containers/vcontainer/vdkr-rootfs-image.bb | 3 | ||||
| -rw-r--r-- | recipes-containers/vcontainer/vpdmn-rootfs-image.bb | 13 |
2 files changed, 6 insertions, 10 deletions
diff --git a/recipes-containers/vcontainer/vdkr-rootfs-image.bb b/recipes-containers/vcontainer/vdkr-rootfs-image.bb index 4a0c8a10..8dcf4190 100644 --- a/recipes-containers/vcontainer/vdkr-rootfs-image.bb +++ b/recipes-containers/vcontainer/vdkr-rootfs-image.bb | |||
| @@ -38,6 +38,8 @@ do_rootfs[nostamp] = "1" | |||
| 38 | inherit core-image | 38 | inherit core-image |
| 39 | 39 | ||
| 40 | # We need Docker and container tools | 40 | # We need Docker and container tools |
| 41 | # Note: runc is explicitly listed because vruntime distro sets | ||
| 42 | # VIRTUAL-RUNTIME_container_runtime="" to avoid runc/crun conflicts. | ||
| 41 | IMAGE_INSTALL = " \ | 43 | IMAGE_INSTALL = " \ |
| 42 | packagegroup-core-boot \ | 44 | packagegroup-core-boot \ |
| 43 | docker-moby \ | 45 | docker-moby \ |
| @@ -48,6 +50,7 @@ IMAGE_INSTALL = " \ | |||
| 48 | iproute2 \ | 50 | iproute2 \ |
| 49 | iptables \ | 51 | iptables \ |
| 50 | util-linux \ | 52 | util-linux \ |
| 53 | kernel-modules \ | ||
| 51 | " | 54 | " |
| 52 | 55 | ||
| 53 | # No extra features needed | 56 | # No extra features needed |
diff --git a/recipes-containers/vcontainer/vpdmn-rootfs-image.bb b/recipes-containers/vcontainer/vpdmn-rootfs-image.bb index 82dd64ba..644ce14d 100644 --- a/recipes-containers/vcontainer/vpdmn-rootfs-image.bb +++ b/recipes-containers/vcontainer/vpdmn-rootfs-image.bb | |||
| @@ -31,21 +31,14 @@ do_rootfs[nostamp] = "1" | |||
| 31 | # Inherit from core-image-minimal for a minimal base | 31 | # Inherit from core-image-minimal for a minimal base |
| 32 | inherit core-image | 32 | inherit core-image |
| 33 | 33 | ||
| 34 | # Use crun as the OCI runtime (not runc) - this prevents the conflict where | ||
| 35 | # both crun (which creates /usr/bin/runc symlink) and runc package are installed | ||
| 36 | VIRTUAL-RUNTIME_container_runtime = "crun" | ||
| 37 | |||
| 38 | # Use netavark for container networking (pulled in via podman's RDEPENDS) | ||
| 39 | VIRTUAL-RUNTIME_container_networking = "netavark" | ||
| 40 | |||
| 41 | # Use aardvark-dns for container DNS | ||
| 42 | VIRTUAL-RUNTIME_container_dns = "aardvark-dns" | ||
| 43 | |||
| 44 | # We need Podman and container tools | 34 | # We need Podman and container tools |
| 45 | # Podman is daemonless - no containerd required! | 35 | # Podman is daemonless - no containerd required! |
| 36 | # Note: crun is explicitly listed because vruntime distro sets | ||
| 37 | # VIRTUAL-RUNTIME_container_runtime="" to avoid runc/crun conflicts. | ||
| 46 | IMAGE_INSTALL = " \ | 38 | IMAGE_INSTALL = " \ |
| 47 | packagegroup-core-boot \ | 39 | packagegroup-core-boot \ |
| 48 | podman \ | 40 | podman \ |
| 41 | crun \ | ||
| 49 | skopeo \ | 42 | skopeo \ |
| 50 | conmon \ | 43 | conmon \ |
| 51 | netavark \ | 44 | netavark \ |
