Pod Architecture¶
Standard OCI Containers
This hierarchy shows build inheritance, not deployment requirements. All pods are published to ghcr.io/atrawog/bazzite-ai-pod-*:stable and run anywhere containers are supported.
Inheritance Tree¶
graph TD
base[pod-base<br/>~2GB<br/>Fedora 43 + Dev Tools]
base --> nvidia[pod-nvidia<br/>~3GB<br/>CUDA + cuDNN + TensorRT]
base --> devops[pod-devops<br/>~4GB<br/>AWS + gcloud + kubectl]
base --> runner[pod-githubrunner<br/>~3GB<br/>GitHub Actions Runner]
nvidia --> python[pod-nvidia-python<br/>~6GB<br/>PyTorch ML via pixi]
python --> jupyter[pod-jupyter<br/>~11GB<br/>JupyterLab Server]
nvidia --> playwright[pod-playwright<br/>~5GB<br/>Chrome + VNC + Sway]
style python fill:#4CAF50,color:#fff
style jupyter fill:#4CAF50,color:#fff
style devops fill:#4CAF50,color:#fff
style playwright fill:#4CAF50,color:#fff Green nodes = Core pods (recommended for most workflows)
Layer Structure¶
Each pod inherits tools from its parent, adding specialized functionality:
Layer 1: Base Foundation¶
pod-base (1.7GB) - Clean Fedora 43 with development essentials
- Build toolchain (gcc, make, cmake, ninja)
- Language runtimes (Python 3.13, Node.js 23+, Go, Rust)
- VS Code, Docker CLI, Podman
- kubectl, Helm, Claude Code
- Modern shell tools (fzf, ripgrep, bat, eza)
Layer 2: Specializations¶
From base:
| Pod | Adds | Use Case |
|---|---|---|
| nvidia | CUDA 13.0, cuDNN, TensorRT | Custom GPU setups |
| devops | AWS, gcloud, Firebase, Grafana tools | Cloud infrastructure |
| githubrunner | GitHub Actions runner agent | CI/CD pipelines |
Layer 3: ML/AI¶
From nvidia:
| Pod | Adds | Use Case |
|---|---|---|
| nvidia-python | PyTorch, torchvision, torchaudio via pixi | ML/AI development |
| playwright | Chrome, Sway, wayvnc, VR packages | Browser automation |
Layer 4: Interactive¶
From nvidia-python:
| Pod | Adds | Use Case |
|---|---|---|
| jupyter | JupyterLab server | Interactive notebooks |
Image Registry¶
All pods are published to GitHub Container Registry:
Available Tags¶
| Tag | Description |
|---|---|
stable | Production-ready release |
latest | Most recent build |
<version> | Specific version (e.g., 1.0.0) |
Pull Examples¶
# Docker
docker pull ghcr.io/atrawog/bazzite-ai-pod-nvidia-python:stable
# Podman
podman pull ghcr.io/atrawog/bazzite-ai-pod-nvidia-python:stable
# Apptainer (converts to SIF format)
apptainer pull docker://ghcr.io/atrawog/bazzite-ai-pod-nvidia-python:stable
Build System¶
Pods are built using a unified buildcache for efficient multi-variant builds:
build_files/
├── Containerfile.base # Base layer
├── Containerfile.nvidia # CUDA layer
├── Containerfile.nvidia-python # PyTorch layer
├── Containerfile.jupyter # JupyterLab layer
├── Containerfile.devops # DevOps tools
├── Containerfile.playwright # Browser automation
└── Containerfile.githubrunner # CI/CD runner
Build Commands¶
# Build specific pod
just pod build nvidia-python
# Build all pods
just pod build all
# Push to registry
just pod push nvidia-python
Common Base Components¶
All pods include (inherited from base):
Languages & Runtimes¶
| Language | Version |
|---|---|
| Python | 3.13 |
| Node.js | 23+ |
| Go | Latest |
| Rust | Latest |
| .NET | 8.0 |
| PHP | Latest |
| Java | OpenJDK |
| Ruby | Latest |
Development Tools¶
| Category | Tools |
|---|---|
| Build | gcc, g++, make, cmake, ninja, meson |
| Version Control | git, gh CLI |
| Containers | Docker CLI, Podman |
| Kubernetes | kubectl, Helm |
| Editor | VS Code (code-server) |
| AI | Claude Code CLI |
Shell Environment¶
| Tool | Purpose |
|---|---|
| Starship | Modern shell prompt |
| fzf | Fuzzy finder |
| zoxide | Smart directory navigation |
| ripgrep | Fast search |
| bat | Better cat |
| eza | Better ls |
Container User¶
All pods run as user jovian (UID 1000) by default:
- Username: jovian
- UID: 1000
- Home: /home/jovian
- Workspace: /workspace (mounted from host)
See Also¶
- All Variants - Complete pod list
- Deployment Guide - Run pods on any platform
- Building from Source - Customize pods