Quick Start
The fastest way to get Chroma running with Docker:Docker Compose (Recommended)
Basic Setup with Persistence
Create adocker-compose.yml file:
Production Configuration
For production deployments, use the configuration from the Chroma repository:Environment File
Create a.env file in the same directory:
Building from Source
Chroma’s official Dockerfile uses a multi-stage build process:Dockerfile Overview
The Dockerfile (Dockerfile in the repository root) creates a production-ready image:
Build Custom Image
Build Arguments
Environment Variables
Server Configuration
| Variable | Default | Description |
|---|---|---|
CHROMA_HOST_ADDR | 0.0.0.0 | Host address to bind to |
CHROMA_HOST_PORT | 8000 | Port to listen on |
CHROMA_WORKERS | 1 | Number of worker processes |
CHROMA_LOG_CONFIG | chromadb/log_config.yml | Path to logging configuration |
CHROMA_TIMEOUT_KEEP_ALIVE | 30 | Keep-alive timeout in seconds |
CHROMA_SERVER_NOFILE | 65536 | Maximum number of open files |
Persistence
| Variable | Default | Description |
|---|---|---|
IS_PERSISTENT | FALSE | Enable persistent storage |
PERSIST_DIRECTORY | ./chroma | Directory for persistent data |
Authentication
Observability
Volume Mounts and Persistence
Data Directory
The default persist directory depends on the configuration: Python-based image (ghcr.io/chroma-core/chroma):Custom Persist Directory
Backup Data
Docker Commands
Basic Operations
Maintenance
Healthcheck
The official configuration includes a healthcheck:Restart Policies
Configured restart behavior:Networking
Custom Network
Expose to External Network
Entrypoint Script
The Docker entrypoint (/docker_entrypoint.sh) handles service startup:
Troubleshooting
Container Fails to Start
Data Not Persisting
VerifyIS_PERSISTENT=TRUE is set and volume is mounted:
Performance Issues
Increase worker count for better concurrency:Next Steps
Configuration
Learn about advanced configuration options
Authentication
Set up authentication and authorization
Kubernetes
Scale to Kubernetes for production
Observability
Monitor your Chroma deployment