- Create Network:
docker network create erpnext-network
- Create Shared Volume
docker volume create erpnext-shared-sites
On each server, run the appropriate compose file:
- Database Server:
docker compose -f db-compose.yml --env-file .env up -d
- Application Server 1:
docker compose -f erpnext1-compose.yml --env-file .env up -d
- Application Server 2:
docker compose -f erpnext2-compose.yml --env-file .env up -d
*Application Server 3:
docker compose -f erpnext3-compose.yml --env-file .env up -d
- Load Balancer Server:
docker compose -f lb-compose.yml --env-file .env up -d
After all services are running, initialize on one instance:
docker exec -it erpnext-app-1
{
"db_host": "erpnext-db",
"db_port": 3306,
"redis_cache": "redis://redis-cache:6379",
"redis_queue": "redis://redis-queue:6379",
"redis_socketio": "redis://redis-queue:6379",
"socketio_port": 9000
}
bench new-site your-site-name --db-host=${DB_HOST} --db-port=${DB_PORT} --db-root-password=${DB_PASSWORD} --admin-password=admin_password_here
bench --site your-site-name install-app erpnext
Check if all components can communicate:
docker exec erpnext-app-1 ping erpnext-db
docker exec erpnext-app-1 redis-cli -h redis-cache -p 6379 ping