Files
the-biergarten-app/tooling/pipeline/runpod
2026-05-04 03:43:03 -04:00
..
2026-05-04 03:43:03 -04:00
2026-05-04 03:43:03 -04:00
2026-05-04 03:43:03 -04:00

RunPod Pod Template for Biergarten Pipeline

This folder contains a starter RunPod pod template for the C++ pipeline in the repository root.

What it does

  • Builds biergarten-pipeline inside the container.
  • Builds the binary on first pod start, then reuses a mode-specific build directory (build-mocked/ or build-live/).
  • Runs from the repository root and lets the launcher switch into the active build directory after CMake has copied locations.json and prompts/.
  • Supports two runtime modes:
    • BIERGARTEN_MODE=mocked — fast deterministic generation, no model required.
    • BIERGARTEN_MODE=live — uses a mounted GGUF model and the prompt files.
  • Writes generated SQLite exports and logs to writable volumes.

Files

  • Dockerfile — GPU-ready build image for the application.
  • start.sh — runtime launcher that selects mocked or live mode.
  • pod-template.yaml — starter pod template you can adapt to the exact RunPod import/export schema.

Build the image

docker build -t biergarten-pipeline:latest -f runpod/Dockerfile .

Run locally in mocked mode

docker run --rm \
  --gpus all \
  -e BIERGARTEN_MODE=mocked \
  -v "$PWD/output:/workspace/output" \
  -v "$PWD/logs:/workspace/logs" \
  biergarten-pipeline:latest

Run locally in live mode

Mount your GGUF model at /workspace/models/google_gemma-4-E4B-it-Q6_K.gguf and switch to BIERGARTEN_MODE=live.

docker run --rm \
  --gpus all \
  -e BIERGARTEN_MODE=live \
  -v "$PWD/models:/workspace/models" \
  -v "$PWD/output:/workspace/output" \
  -v "$PWD/logs:/workspace/logs" \
  biergarten-pipeline:latest

Notes for RunPod

  • Use a GPU pod for live inference.
  • Mount persistent storage for /workspace/models, /workspace/output, and /workspace/logs.
  • If you only want deterministic seed generation, change the template's BIERGARTEN_MODE to mocked.
  • The launcher handles the build directory automatically; CMake still copies locations.json and prompts/ into the active build tree before execution.