This guide is for running docker2vm on Linux hosts.
docker2vm includes a pinned Gondolin runtime dependency (@earendil-works/gondolin@0.2.1) to resolve guest assets during conversion.
sudo apt-get update
sudo apt-get install -y curl unzip e2fsprogs qemu-system-x86Install Bun:
curl -fsSL https://bun.sh/install | bash
export BUN_INSTALL="$HOME/.bun"
export PATH="$BUN_INSTALL/bin:$PATH"If you want Dockerfile conversion (dockerfile2gondolin), install Docker and Buildx.
docker2vm is tested with @earendil-works/gondolin@0.2.1 and can fetch guest assets automatically during conversion.
Install the CLI globally if you want to execute generated assets via gondolin exec:
bun add -g @earendil-works/gondolin@0.2.1bun --version
qemu-system-x86_64 --version
mke2fs -V
debugfs -V
gondolin --help >/dev/nullbun run test
bun run typecheck
bun run buildUse a platform that matches the architecture you will run in Gondolin.
uname -m=>x86_64oramd64: uselinux/amd64uname -m=>aarch64orarm64: uselinux/arm64
oci2gondolin defaults automatically from host arch if --platform is omitted, but passing it explicitly is recommended.
Example:
bun run oci2gondolin -- \
--image busybox:latest \
--platform linux/amd64 \
--mode assets \
--out ./out/busybox-assetsamd64 host:
INTEGRATION_PLATFORM=linux/amd64 bun run test:integration
PLATFORM=linux/amd64 bun run e2e:smokearm64 host:
INTEGRATION_PLATFORM=linux/arm64 bun run test:integration
PLATFORM=linux/arm64 bun run e2e:smoke- If
/dev/kvmis available, QEMU can use hardware acceleration. - If
/dev/kvmis unavailable (common in CI), the project falls back to TCG emulation (slower but functional).
Confirm QEMU is installed and that you are using a platform that matches your host and assets.
Reinstall e2fsprogs and verify the commands are available in your shell.