Quick Start¶
Bazzite Pods are standard OCI containers. Choose your platform:
nvidia-python (ML/AI Development)¶
# With NVIDIA GPU
docker run -it --rm --gpus all -v $(pwd):/workspace \
ghcr.io/atrawog/bazzite-ai-pod-nvidia-python:stable
# CPU-only (no GPU)
docker run -it --rm -v $(pwd):/workspace \
ghcr.io/atrawog/bazzite-ai-pod-nvidia-python:stable
# AMD/Intel GPU
docker run -it --rm --device=/dev/dri -v $(pwd):/workspace \
ghcr.io/atrawog/bazzite-ai-pod-nvidia-python:stable
apiVersion: batch/v1
kind: Job
metadata:
name: pytorch-training
spec:
template:
spec:
containers:
- name: pytorch
image: ghcr.io/atrawog/bazzite-ai-pod-nvidia-python:stable
command: ["pixi", "run", "--manifest-path", "/opt/pixi/pixi.toml", "python", "/workspace/train.py"]
resources:
limits:
nvidia.com/gpu: 1
volumeMounts:
- name: workspace
mountPath: /workspace
volumes:
- name: workspace
persistentVolumeClaim:
claimName: ml-workspace
restartPolicy: OnFailure
# Pull image once
apptainer pull docker://ghcr.io/atrawog/bazzite-ai-pod-nvidia-python:stable
# Interactive session
apptainer exec --nv bazzite-ai-pod-nvidia-python_stable.sif bash
# Slurm batch job
srun --gres=gpu:1 apptainer exec --nv \
bazzite-ai-pod-nvidia-python_stable.sif \
pixi run --manifest-path /opt/pixi/pixi.toml python train.py
jupyter (JupyterLab)¶
apiVersion: apps/v1
kind: Deployment
metadata:
name: jupyterlab
spec:
replicas: 1
selector:
matchLabels:
app: jupyterlab
template:
metadata:
labels:
app: jupyterlab
spec:
containers:
- name: jupyter
image: ghcr.io/atrawog/bazzite-ai-pod-jupyter:stable
ports:
- containerPort: 8888
resources:
limits:
nvidia.com/gpu: 1
---
apiVersion: v1
kind: Service
metadata:
name: jupyterlab
spec:
selector:
app: jupyterlab
ports:
- port: 8888
targetPort: 8888
devops (Cloud Infrastructure)¶
apiVersion: v1
kind: Pod
metadata:
name: devops-shell
spec:
containers:
- name: devops
image: ghcr.io/atrawog/bazzite-ai-pod-devops:stable
command: ["sleep", "infinity"]
volumeMounts:
- name: kubeconfig
mountPath: /home/jovian/.kube
readOnly: true
volumes:
- name: kubeconfig
secret:
secretName: kubeconfig
playwright (Browser Automation)¶
Common Patterns¶
Volume Mounting¶
Your current directory mounts at /workspace inside the container:
docker run -it --rm -v $(pwd):/workspace ghcr.io/atrawog/bazzite-ai-pod-nvidia-python:stable
# Inside container: cd /workspace
Credential Mounting¶
# AWS credentials
docker run -it --rm -v ~/.aws:/home/jovian/.aws:ro ...
# Kubernetes config
docker run -it --rm -v ~/.kube:/home/jovian/.kube:ro ...
# SSH keys
docker run -it --rm -v ~/.ssh:/home/jovian/.ssh:ro ...
Environment Variables¶
docker run -it --rm \
-e AWS_PROFILE=myprofile \
-e CUDA_VISIBLE_DEVICES=0 \
ghcr.io/atrawog/bazzite-ai-pod-nvidia-python:stable