diff options
| author | Bruce Ashfield <bruce.ashfield@gmail.com> | 2026-01-06 20:41:53 +0000 |
|---|---|---|
| committer | Bruce Ashfield <bruce.ashfield@gmail.com> | 2026-01-21 18:00:26 -0500 |
| commit | de7407165c03b5703409638c717553febeacdced (patch) | |
| tree | ab4bd4de36846e2c38ce4b6ae5eb602cadea416d /recipes-containers/vcontainer/vcontainer-native.bb | |
| parent | 338b0bdf3228731e24502da7dad0ca4e76b81412 (diff) | |
| download | meta-virtualization-de7407165c03b5703409638c717553febeacdced.tar.gz | |
vcontainer: add shared infrastructure and runner
Add core vcontainer infrastructure shared by vdkr and vpdmn:
Scripts:
- vrunner.sh: QEMU runner supporting both Docker and Podman runtimes
- vcontainer-common.sh: Shared CLI functions and command handling
- vcontainer-init-common.sh: Shared init script functions for QEMU guest
- vdkr-preinit.sh: Initramfs preinit for switch_root to squashfs overlay
Recipes:
- vcontainer-native: Installs vrunner.sh and shared scripts
- vcontainer-initramfs-create.inc: Shared initramfs build logic
Features:
- Docker/Podman-compatible commands: images, pull, load, save, run, exec
- Memory resident mode for fast command execution
- KVM acceleration when host matches target
- Interactive mode with volume mounts
- Squashfs rootfs with tmpfs overlay
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Diffstat (limited to 'recipes-containers/vcontainer/vcontainer-native.bb')
| -rw-r--r-- | recipes-containers/vcontainer/vcontainer-native.bb | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/recipes-containers/vcontainer/vcontainer-native.bb b/recipes-containers/vcontainer/vcontainer-native.bb new file mode 100644 index 00000000..1d19ac1b --- /dev/null +++ b/recipes-containers/vcontainer/vcontainer-native.bb | |||
| @@ -0,0 +1,43 @@ | |||
| 1 | # SPDX-FileCopyrightText: Copyright (C) 2025 Bruce Ashfield | ||
| 2 | # | ||
| 3 | # SPDX-License-Identifier: MIT | ||
| 4 | # | ||
| 5 | # vcontainer-native.bb | ||
| 6 | # =========================================================================== | ||
| 7 | # Native recipe providing vrunner.sh for container cross-installation | ||
| 8 | # =========================================================================== | ||
| 9 | # | ||
| 10 | # This recipe installs vrunner.sh into the native sysroot so that | ||
| 11 | # container-bundle.bbclass and container-cross-install.bbclass can use it | ||
| 12 | # to cross-install containers into target images. | ||
| 13 | # | ||
| 14 | # Note: This does NOT build the blobs. Blobs must be built separately via | ||
| 15 | # multiconfig (see vdkr-initramfs-create, vpdmn-initramfs-create). | ||
| 16 | # | ||
| 17 | # =========================================================================== | ||
| 18 | |||
| 19 | SUMMARY = "Container cross-install runner script" | ||
| 20 | DESCRIPTION = "Provides vrunner.sh for cross-installing containers into images" | ||
| 21 | HOMEPAGE = "https://git.yoctoproject.org/meta-virtualization/" | ||
| 22 | LICENSE = "MIT" | ||
| 23 | LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" | ||
| 24 | |||
| 25 | inherit native | ||
| 26 | |||
| 27 | # Runtime dependencies for vrunner.sh | ||
| 28 | DEPENDS = "coreutils-native socat-native" | ||
| 29 | |||
| 30 | SRC_URI = "\ | ||
| 31 | file://vrunner.sh \ | ||
| 32 | file://vcontainer-common.sh \ | ||
| 33 | " | ||
| 34 | |||
| 35 | S = "${UNPACKDIR}" | ||
| 36 | |||
| 37 | do_install() { | ||
| 38 | install -d ${D}${bindir} | ||
| 39 | install -m 0755 ${S}/vrunner.sh ${D}${bindir}/vrunner.sh | ||
| 40 | install -m 0644 ${S}/vcontainer-common.sh ${D}${bindir}/vcontainer-common.sh | ||
| 41 | } | ||
| 42 | |||
| 43 | BBCLASSEXTEND = "native" | ||
