Skip to main content
Chroma provides official Docker images for easy deployment. This guide covers single-instance Docker deployments using the official images.

Quick Start

The fastest way to get Chroma running with Docker:
This starts Chroma in ephemeral mode. Data will be lost when the container stops.

Basic Setup with Persistence

Create a docker-compose.yml file:
Start the server:

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

Persistence

Authentication

See the Authentication guide for more details.

Observability

Volume Mounts and Persistence

Data Directory

The default persist directory depends on the configuration: Python-based image (ghcr.io/chroma-core/chroma):
Rust-based image (built from source):

Custom Persist Directory

Backup Data

Docker Commands

Basic Operations

Maintenance

Healthcheck

The official configuration includes a healthcheck:
Check health status:

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

Verify IS_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