# Firecracker orchestrator-VM image (PRD 0070). # # The control-plane rootfs the orchestrator microVM boots: the lean orchestrator # image + the in-VM agent-image builder. The Firecracker backend builds users' # agent Dockerfiles *inside this VM* with buildah (rootless, daemonless) instead # of on the host — no host Docker daemon, no root-equivalent `docker` group. The # gateway VM boots a *separate*, slimmer rootfs (bot-bottle-gateway:latest) that # carries none of this build tooling — the exposed data plane stays minimal. # # `crun` is the OCI runtime; `netavark` + `aardvark-dns` are the network backend # for `FROM` pulls + `RUN` egress. `vfs` + `chroot`: buildah works as root in the # bare microVM (no fuse-overlayfs / overlay module / subuid maps). The trixie # base (from Dockerfile.orchestrator's python:3.12-slim) carries buildah 1.39, # which parses the Dockerfile heredocs agent images use (bookworm's 1.28 can't). # Matches image_builder. There is deliberately no default: the build coordinator # passes the exact local image ID returned by `docker image inspect`, so this # stage cannot silently resolve a stale `:latest` tag. ARG ORCHESTRATOR_BASE_IMAGE FROM ${ORCHESTRATOR_BASE_IMAGE} ARG DEBIAN_SNAPSHOT=20260724T000000Z RUN sed -i \ -e "s|http://deb.debian.org/debian-security|https://snapshot.debian.org/archive/debian-security/${DEBIAN_SNAPSHOT}|g" \ -e "s|https://deb.debian.org/debian-security|https://snapshot.debian.org/archive/debian-security/${DEBIAN_SNAPSHOT}|g" \ -e "s|http://deb.debian.org/debian|https://snapshot.debian.org/archive/debian/${DEBIAN_SNAPSHOT}|g" \ -e "s|https://deb.debian.org/debian|https://snapshot.debian.org/archive/debian/${DEBIAN_SNAPSHOT}|g" \ /etc/apt/sources.list.d/debian.sources RUN apt-get -o Acquire::Check-Valid-Until=false update \ && apt-get install -y --no-install-recommends \ buildah crun netavark aardvark-dns \ && rm -rf /var/lib/apt/lists/* ENV STORAGE_DRIVER=vfs \ BUILDAH_ISOLATION=chroot