Environment:Risingwavelabs Risingwave Docker Deployment Environment
| Knowledge Sources | |
|---|---|
| Domains | Infrastructure, Deployment, Docker |
| Last Updated | 2026-02-09 08:00 GMT |
Overview
Docker Compose environment for deploying RisingWave with PostgreSQL metadata store, MinIO object storage, Prometheus monitoring, Grafana dashboards, and Redpanda message queue.
Description
This environment provides the containerized deployment stack for RisingWave. The default docker-compose.yml runs RisingWave in standalone mode with MinIO as the state store backend. Alternative compose files support S3, GCS, Azure Blob, Alibaba OSS, Huawei OBS, HDFS, local filesystem, and SQLite backends. A distributed mode compose file runs separate compute, compactor, frontend, and meta nodes. Memory allocation is critical: the default configuration reserves 28GB for the RisingWave container.
Usage
Use this environment for production or development deployment of RisingWave via Docker Compose. It is the prerequisite for running any integration tests, end-to-end SLT tests against a live cluster, or local development with ./risedev d.
System Requirements
| Category | Requirement | Notes |
|---|---|---|
| OS | Linux, macOS, or Windows with WSL2 | Docker Desktop or Docker Engine |
| Docker | Docker Engine 20.10+ | Must support compose v2 (YAML anchors, extends) |
| Docker Compose | v2.0+ | Compose plugin format preferred |
| RAM | 8GB minimum, 28GB recommended | See memory allocation table below |
| Disk | 20GB+ SSD | For MinIO state store and container images |
| Ports | 4566, 5690, 5691, 9301, 9400, 9500, 3001, 9092 | Must be available on host |
Dependencies
Container Images
risingwavelabs/risingwave:v2.7.1(default, customizable viaRW_IMAGE)postgres:15-alpine(metadata store)grafana/grafana-oss:latest(monitoring dashboards)quay.io/minio/minio:latest(object storage)prom/prometheus:latest(metrics collection)redpandadata/redpanda:latest(Kafka-compatible message queue)
Optional Images (backend-specific)
quay.io/lakekeeper/catalog:latest-main(Iceberg catalog with Lakekeeper)- Apache Hadoop (for HDFS backend)
- Spark (for Iceberg integration tests)
Credentials
The following environment variables must be configured for cloud storage backends:
AWS S3 (via docker/aws.env):
AWS_REGION: AWS regionAWS_ACCESS_KEY_ID: S3 access keyAWS_SECRET_ACCESS_KEY: S3 secret keyRW_S3_ENDPOINT: Optional, for S3-compatible storage
Google Cloud Storage (via docker/multiple_object_storage.env):
GOOGLE_APPLICATION_CREDENTIALS: Base64-encoded service account JSON
Azure Blob Storage:
AZBLOB_ENDPOINT: Azure endpointAZBLOB_ACCOUNT_NAME: Storage account nameAZBLOB_ACCOUNT_KEY: Storage account key
Alibaba Cloud OSS:
OSS_ENDPOINT: OSS endpointOSS_ACCESS_KEY_ID: Access keyOSS_ACCESS_KEY_SECRET: Secret key
Huawei Cloud OBS:
OBS_ENDPOINT: OBS endpointOBS_ACCESS_KEY_ID: Access keyOBS_SECRET_ACCESS_KEY: Secret key
Internal RisingWave Variables:
RW_SECRET_STORE_PRIVATE_KEY_HEX: Secret encryption key (default:0123456789abcdef0123456789abcdef; change in production)RW_LICENSE_KEY: Optional enterprise license keyENABLE_TELEMETRY: Telemetry toggle (default: true)
Quick Install
# Default deployment with MinIO
docker compose -f docker/docker-compose.yml up -d
# Deployment with S3 backend (configure docker/aws.env first)
docker compose -f docker/docker-compose-with-s3.yml up -d
# Distributed multi-node deployment
docker compose -f docker/docker-compose-distributed.yml up -d
# Connect via psql
psql -h localhost -p 4566 -d dev -U root
Code Evidence
Memory configuration from docker/docker-compose.yml line 81:
deploy:
resources:
limits:
memory: 28G
reservations:
memory: 28G
Environment variables from docker/docker-compose.yml lines 61-66:
environment:
RUST_BACKTRACE: "1"
ENABLE_TELEMETRY: ${ENABLE_TELEMETRY:-true}
RW_TELEMETRY_TYPE: "docker-compose"
RW_SECRET_STORE_PRIVATE_KEY_HEX: "0123456789abcdef0123456789abcdef"
RW_LICENSE_KEY: ${RW_LICENSE_KEY:-}
State store URL pattern from docker/docker-compose.yml line 31:
--state-store hummock+minio://hummockadmin:hummockadmin@minio-0:9301/hummock001
Common Errors
| Error Message | Cause | Solution |
|---|---|---|
port 4566 already in use |
Previous RisingWave instance running | Stop with docker compose down or ./risedev k
|
OOM killed |
Insufficient Docker memory | Increase Docker memory limit to 28GB+ or reduce container limits |
minio-0 unhealthy |
MinIO failed to start | Check disk space and port 9301 availability |
connection refused on port 4566 |
RisingWave not ready yet | Wait for healthcheck to pass; check logs in .risingwave/log/
|
Compatibility Notes
- Docker Desktop: Must allocate sufficient memory in Docker Desktop settings (28GB recommended).
- ARM64 (Apple Silicon): Supported; images are multi-arch. Performance may differ from x86_64.
- State Store Backends: MinIO is the default for local development. For production, use S3, GCS, or Azure Blob Storage.
- Image Tags: Available tags:
latest(stable),nightly(latest nightly),vX.Y.Z(release),nightly-yyyyMMdd(dated nightly).