Documentation Index
Fetch the complete documentation index at: https://mintlify.com/frappe/frappe/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Docker provides a containerized deployment option for Frappe Framework, making it easier to manage dependencies and ensure consistent environments across development and production.Prerequisites
Before deploying Frappe with Docker, ensure you have:- Docker Engine (version 20.10 or higher)
- Docker Compose (version 2.0 or higher)
- Git for cloning repositories
Refer to the Docker documentation for installation instructions specific to your operating system.
Quick start
Get Frappe running with Docker in minutes:Start the containers
- Frappe application server
- MariaDB database
- Redis cache and queue
- nginx reverse proxy
ARM64 architecture
For ARM-based systems (like Apple Silicon or ARM servers), follow the special setup instructions:- Visit the Frappe Docker repository
- Follow the ARM64-specific instructions in the README
ARM64 images require different base images and may have slightly different build processes.
Docker compose files
The Frappe Docker repository includes several compose files for different scenarios:Development setup
- Volume mounts for live code changes
- Debug mode enabled
- Development tools included
Production setup
- Optimized images
- Production-ready configuration
- Multi-worker setup
Proof of Work (pwd.yml)
- Minimal configuration
- Fast startup
- Perfect for testing
Container architecture
Frappe Docker setup includes these services:Application containers
- frappe-web: Runs gunicorn for serving HTTP requests
- frappe-worker-default: Processes default queue jobs
- frappe-worker-short: Handles short-running background jobs
- frappe-worker-long: Executes long-running background jobs
- frappe-scheduler: Manages scheduled tasks
Infrastructure containers
- mariadb: Database server for data persistence
- redis-cache: Redis instance for application caching
- redis-queue: Redis instance for job queuing
- nginx: Reverse proxy and static file server
Managing sites
Create a new site
Create additional sites in your Docker deployment:List sites
View all sites in your deployment:Migrate sites
Run database migrations after updates:Persistent data
Docker volumes ensure data persistence across container restarts:- db-data: Database files
- redis-cache-data: Redis cache data
- redis-queue-data: Redis queue data
- sites: Site files and configurations
Updating containers
Update your Frappe Docker deployment:Environment configuration
Customize your deployment using environment variables in a.env file:
Logs and debugging
View container logs
Execute commands in container
Production considerations
When deploying Docker in production:- Use production compose files: They include optimized settings
- Set resource limits: Control memory and CPU usage per container
- Enable restart policies: Ensure containers restart after failures
- Configure SSL/TLS: Use Let’s Encrypt or other certificate providers
- Monitor containers: Use tools like Prometheus and Grafana
- Regular backups: Automate backup of volumes and databases
Troubleshooting
Containers won't start
Containers won't start
Check Docker logs for errors:Ensure all required ports are available and not in use by other services.
Database connection errors
Database connection errors
Verify database container is running:Check database credentials in environment variables match site configuration.
Permission errors
Permission errors
Ensure proper ownership on mounted volumes:
Next steps
Bench tool
Learn about the bench CLI for site management
Configuration
Configure your Frappe deployment