Workflow:Risingwavelabs Risingwave Docker Deployment
| Knowledge Sources | |
|---|---|
| Domains | Deployment, DevOps, Infrastructure |
| Last Updated | 2026-02-09 12:00 GMT |
Overview
End-to-end process for deploying RisingWave using Docker and Docker Compose, covering standalone, distributed, and storage-backend-specific configurations.
Description
This workflow describes how to deploy RisingWave from zero to a running cluster using Docker. RisingWave provides pre-built Docker images and multiple Docker Compose configurations for different deployment modes and storage backends. The deployment includes the core RisingWave services (meta, frontend, compute, compactor) along with supporting infrastructure (object storage, monitoring).
The process covers:
- Goal: A running RisingWave cluster ready to accept SQL connections and process streaming data.
- Scope: From pulling Docker images to connecting with a Postgres client and verifying cluster health.
- Strategy: Uses Docker Compose profiles for different deployment modes (standalone, distributed) and storage backends (MinIO, S3, GCS, Azure Blob, HDFS).
Usage
Execute this workflow when you need to set up a RisingWave instance for development, testing, or production. Choose standalone mode for single-machine deployments and development, or distributed mode for production workloads requiring scalability and fault tolerance.
Execution Steps
Step 1: Choose Deployment Configuration
Select the appropriate Docker Compose configuration based on your deployment requirements. Options include standalone mode with various storage backends (MinIO, S3, GCS, Azure Blob, local filesystem) and distributed mode with multiple compute nodes.
Key considerations:
- Standalone mode (docker-compose.yml) is simplest for development and single-machine deployments
- Distributed mode (docker-compose-distributed.yml) provides multiple frontend and compute nodes for scalability
- Storage backend choice depends on your cloud provider: S3 for AWS, GCS for Google Cloud, Azure Blob for Azure
- MinIO provides S3-compatible storage for local and development deployments
Step 2: Configure Environment
Set environment variables and configuration parameters for your deployment. This includes memory limits, storage credentials, and network settings.
Key considerations:
- Set total_memory_bytes appropriately for your compute nodes
- Configure object storage credentials (access key, secret key, bucket name, endpoint)
- Adjust Prometheus and Grafana settings if monitoring is needed
- For production, configure proper resource limits in the compose file
Step 3: Launch the Cluster
Start the RisingWave cluster using Docker Compose. The compose file orchestrates starting all required services in the correct order with proper health checks and dependencies.
Key considerations:
- Services start in dependency order: etcd, object storage, meta, compute, compactor, frontend
- Health checks ensure each service is ready before dependents start
- The frontend service exposes port 4566 for Postgres wire protocol connections
- The dashboard is accessible on port 5691
Step 4: Connect and Verify
Connect to the running RisingWave instance using any Postgres-compatible client. Verify the cluster is operational by running diagnostic queries.
Key considerations:
- Connect via psql: psql -h localhost -p 4566 -d dev -U root
- Use any Postgres-compatible client library (JDBC, psycopg2, node-postgres, etc.)
- Run basic queries to verify connectivity and data processing capability
Step 5: Set Up Monitoring
Access the built-in monitoring tools to observe cluster health, performance metrics, and streaming job status. The Docker Compose configurations include Prometheus and Grafana for metrics collection and visualization.
Key considerations:
- The web dashboard at port 5691 provides fragment graph visualization, relation browsing, and cluster overview
- Grafana dashboards (port 3001) show detailed performance metrics including streaming throughput, barrier latency, and storage metrics
- Prometheus (port 9500) scrapes metrics from all RisingWave components
- Two dashboard profiles are available: developer (detailed internal metrics) and user (simplified operational metrics)