Quick Start
The fastest way to get Temporal running locally:Docker Image
Temporal provides official Docker images:Image Details
The server image is based on Alpine Linux and includes:temporal-serverbinary in/usr/local/bin/- Entrypoint script at
/etc/temporal/entrypoint.sh - Non-root user
temporal(UID 1000, GID 1000)
Docker Compose Setup
Development Environment
For local development with all dependencies:Access the UI
Open http://localhost:8233 to access Temporal Web UI.Environment Variables
The Docker image supports configuration via environment variables:Database Configuration
- MySQL
- PostgreSQL
- Cassandra
Elasticsearch Configuration
Service Configuration
Logging and Metrics
TLS Configuration
Production Deployment
Multi-Container Setup
For production, run separate containers for each service:Health Checks
Add health checks to your containers:Volume Mounts
Mount configuration and TLS certificates:Dockerfile Reference
The official Temporal Server Dockerfile:Entrypoint Script
Common Issues
Database connection errors
Database connection errors
Symptoms: Container fails to start with database connection errorsSolutions:
- Ensure database is running and accessible
- Verify network connectivity between containers
- Check database credentials in environment variables
- Initialize schema using
temporal-sql-toolortemporal-cassandra-tool
Port conflicts
Port conflicts
Symptoms: “Address already in use” errorsSolutions:
- Check for other services using the same ports
- Modify port mappings in docker-compose.yml
- Use environment variables to change default ports
Insufficient resources
Insufficient resources
Symptoms: Container OOM killed or high CPU usageSolutions:
- Increase Docker memory limits
- Reduce
NUM_HISTORY_SHARDSfor development - Lower database connection pool sizes
- Scale services horizontally
For Kubernetes deployments, see the official Temporal Helm charts.