b7599ed146
The orchestrator/gateway container split retired the docker backend's combined `bot-bottle-infra` container, leaving `Dockerfile.infra` used only as the base layer for the firecracker rootfs image — and its header still (falsely) claimed "used directly by the Docker backend." Fold its one `COPY --from orchestrator` into `Dockerfile.infra.fc` (now `FROM bot-bottle-gateway` directly + the copy + buildah), delete Dockerfile.infra, and drop the now-dead build step + artifact-version entry. `build_infra_images_with_docker` builds three images instead of four; the firecracker rootfs is unchanged in content (still gateway + orchestrator package + buildah, one artifact). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
35 lines
1.7 KiB
Docker
35 lines
1.7 KiB
Docker
# Firecracker infra VM image (PRD 0070 Stage B).
|
|
#
|
|
# The shared rootfs both firecracker infra VMs boot: the gateway data plane +
|
|
# the orchestrator control plane + the in-VM agent-image builder. A `bb_role=`
|
|
# kernel-cmdline arg selects which plane the guest init starts (see
|
|
# `infra_vm._infra_init`), so there is one artifact to build/publish/pull.
|
|
#
|
|
# `Dockerfile.orchestrator` is the single definition of the orchestrator
|
|
# content (the lean `bot_bottle` package on trixie `python:3.12-slim`); it's
|
|
# pulled in via `COPY --from` (multi-`FROM` can't union two bases). Both images
|
|
# share the trixie base, so the copy is clean.
|
|
#
|
|
# The Firecracker backend builds users' agent Dockerfiles *inside the
|
|
# orchestrator VM* with buildah (rootless, daemonless) instead of on the host —
|
|
# no host Docker daemon, no root-equivalent `docker` group. Requires the trixie
|
|
# base from bot-bottle-gateway (buildah 1.39: bookworm's 1.28 can't parse the
|
|
# Dockerfile heredocs agent images use). `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). Matches image_builder.
|
|
FROM bot-bottle-gateway:latest
|
|
|
|
# The orchestrator content, from its single definition. The gateway image
|
|
# already has the flat daemon modules under /app; this adds the full
|
|
# `bot_bottle` package so `python3 -m bot_bottle.orchestrator` resolves in the
|
|
# orchestrator-role VM.
|
|
COPY --from=bot-bottle-orchestrator:latest /app/bot_bottle /app/bot_bottle
|
|
|
|
RUN apt-get 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
|