Begin work on runpod configuration

This commit is contained in:
Aaron Po
2026-05-03 23:32:08 -04:00
parent 26635ace84
commit b05000c6fb
12 changed files with 457 additions and 87 deletions

View File

@@ -0,0 +1,66 @@
# 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
```bash
docker build -t biergarten-pipeline:latest -f runpod/Dockerfile .
```
## Run locally in mocked mode
```bash
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`.
```bash
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.