Description
Setting up a local urunc development environment requires manually installing Docker, QEMU, Firecracker, Solo5, Cloud-Hypervisor, containerd, CNI plugins, and the Go toolchain. This is documented in the installation guide, but there is no reproducible, one-click environment for new contributors or LFX mentees.
Proposed Work
-
Add .devcontainer/devcontainer.json with:
- Docker-in-Docker support
- KVM access for QEMU/Firecracker
- Pre-installed tools: QEMU, Firecracker, Solo5, Cloud-Hypervisor, containerd, CNI, Go
-
Add .devcontainer/Dockerfile based on Ubuntu 22.04 with all build and runtime dependencies.
-
Configure for GitHub Codespaces compatibility.
-
Document usage in docs/developer-guide/development.md.
Why This Matters
- Lowers the barrier for new contributors who want to run
make unittest or make e2etest without host-level VMM installation.
- Provides a consistent environment that matches CI runners (Ubuntu 22.04, specific tool versions).
- Helps LFX mentees and new community members get productive in minutes instead of hours.
Acceptance Criteria
Non-Goals
- Replacing the existing installation guide.
- Adding new hypervisor or unikernel support.
I can open a PR if agreed on.
Description
Setting up a local
uruncdevelopment environment requires manually installing Docker, QEMU, Firecracker, Solo5, Cloud-Hypervisor, containerd, CNI plugins, and the Go toolchain. This is documented in the installation guide, but there is no reproducible, one-click environment for new contributors or LFX mentees.Proposed Work
Add
.devcontainer/devcontainer.jsonwith:Add
.devcontainer/Dockerfilebased on Ubuntu 22.04 with all build and runtime dependencies.Configure for GitHub Codespaces compatibility.
Document usage in
docs/developer-guide/development.md.Why This Matters
make unittestormake e2etestwithout host-level VMM installation.Acceptance Criteria
make unittestpasses inside the dev container without additional setup.make e2etestcan runtest_ctrsuccessfully inside the container.Non-Goals
I can open a PR if agreed on.