a24e1efe31d65e3ef37d06cc4839c9fc5cc33696
boco
Turning containers into bootable VMs
Example
# Build the container
podman build ./example/alpine -t boco-alpine
# Make the container bootable. boco injects /boco/init and /boco/exec,
# then packs the rootfs as a qcow2 disk.
boco build qcow2 boco-alpine
# Boot the image using QEMU. The container's CMD runs automatically.
boco boot boco-alpine
# Override the command at runtime (base64-encoded on the kernel cmdline):
boco boot boco-alpine --cmd '/bin/sh'
# Override the command at build time (baked into /boco/exec):
boco build qcow2 boco-alpine --cmd '/bin/sh'
# Cleanup
boco image rm boco-alpine
podman image rm boco-alpine
Kernel
boco boots VMs using a shared kernel at $XDG_DATA_HOME/boco/registry/vmlinuz.
Place a suitable x86 bzImage there before running boco boot.
Languages
Rust
75.1%
Shell
24.7%
Dockerfile
0.2%