Skip to main content
Coming Soon — Fully Managed GPU InfrastructureWe’re building automated infrastructure management across cloud providers so your research and MLE teams can run GPU workloads directly in their own cloud accounts without ever thinking about infrastructure. If you’d like early access or want to learn more, reach out at support@usechamber.io.

Auto-Containerize with chamber run

One command. That’s all it takes. Point chamber run at your training code and it handles everything: containerization, registry authentication, image building, and workload submission.
No Docker knowledge required. Chamber auto-detects your project structure, generates optimized Dockerfiles, and guides you through any missing prerequisites.

What Chamber Does For You

1

Detects your project

Scans for PyTorch, TensorFlow, or JAX. Finds train.py, main.py, or your entrypoint. Reads requirements.txt or pyproject.toml.
2

Generates optimized Dockerfile

Creates a GPU-optimized container with the right CUDA version, cuDNN, and your dependencies pre-installed.
3

Handles authentication

Auto-authenticates with Google Artifact Registry or AWS ECR using your existing cloud credentials.
4

Builds and pushes

Uses docker buildx build --push to build and push in a single efficient step. Automatically pulls the :latest tag to seed the layer cache so teammates get fast rebuilds. Uses content-addressed image tags — if the image already exists, build and push are skipped entirely.
5

Submits workload

Creates and submits a Kubernetes job to Chamber with your GPU and resource requirements.

Quick Start

Always use --dry-run first to preview the generated Dockerfile and Kubernetes manifest before building.

Interactive Setup (First-Time Users)

Chamber guides you through everything. Missing something? Chamber will help:

No Registry Configured?

Docker Not Installed?

AWS CLI Not Configured?

One-time setup. After your first successful run, these settings are saved. Future runs work instantly without prompts.

Supported Container Registries

Chamber automatically handles authentication for major cloud registries:

Project Detection

Chamber automatically detects your project configuration:

Project Configuration

Create a .chamber.yaml file for persistent settings (optional):
CLI flags always override .chamber.yaml values, so you can set defaults while still customizing per-run.

Command Reference

Required Flags

Resource Flags

Container Flags

Entrypoint Flags

Workflow Flags

Examples

Basic Training Workload

Custom Entrypoint with Arguments

With Environment Variables

Reserved (Non-Preemptible) Capacity

Using Your Own Dockerfile

Generated Artifacts

Example Dockerfile

For a PyTorch project with Accelerate, Chamber generates:
Chamber uses BuildKit with pip cache mounts, so repeated builds reuse cached Python packages instead of re-downloading them.

Example Kubernetes Manifest

Troubleshooting

Chamber will prompt you with installation options:
Select an option and follow the prompts.
If auto-authentication fails:For Google Artifact Registry:
For AWS ECR:
Check your requirements.txt is complete. Use --dry-run to preview the Dockerfile:
If needed, use --save-dockerfile to inspect and modify:

Docker Build Optimizations

Chamber automatically applies several optimizations to make builds fast:
Why single build+push matters: With Docker Desktop’s containerd image store, a separate docker push can push ALL manifests from multi-platform base images (e.g., 6 manifests for NVIDIA images), causing each layer to be checked 6 times. The buildx build --push approach only pushes what it built — making pushes dramatically faster, especially for large ML images.
Use --no-cache to force a full Docker rebuild (this does not force re-push if the image already exists):

Best Practices

Start with --dry-run

Always preview generated artifacts before building to catch issues early.

Use .chamber.yaml

Store project-specific settings to avoid repeating flags on every run.

Set default_registry

Configure your registry once: chamber config set default_registry <url>

Use forward_env

Securely inject API keys without hardcoding them in your config.