Running with Docker
This guide shows how to run Korvet using Docker.
Quick Start
Run Korvet with default configuration:
docker run -p 9092:9092 redisfield/korvet:latest
This starts Korvet on port 9092 with an embedded Redis instance.
Using External Redis
To use an external Redis instance:
docker run -p 9092:9092 \
-e KORVET_REDIS_URI=redis://redis.example.com:6379 \
redisfield/korvet:latest
With authentication:
docker run -p 9092:9092 \
-e KORVET_REDIS_URI=redis://redis.example.com:6379 \
-e KORVET_REDIS_USERNAME=default \
-e KORVET_REDIS_PASSWORD=${REDIS_PASSWORD} \
redisfield/korvet:latest
Docker Compose
Create a docker-compose.yml file:
services:
redis:
image: redis:latest
ports:
- "6379:6379"
korvet:
image: redisfield/korvet:latest
ports:
- "9092:9092"
environment:
KORVET_REDIS_URI: redis://redis:6379
depends_on:
- redis
With Redis authentication:
services:
redis:
image: redis:latest
command: redis-server --requirepass ${REDIS_PASSWORD}
ports:
- "6379:6379"
korvet:
image: redisfield/korvet:latest
ports:
- "9092:9092"
environment:
KORVET_REDIS_URI: redis://redis:6379
KORVET_REDIS_PASSWORD: ${REDIS_PASSWORD}
depends_on:
- redis
Run with:
docker compose up
Configuration
See Configuration for all available options.
JVM Tuning
Direct Memory for High Concurrency
For production deployments with many concurrent connections (e.g., Databricks Spark, Flink), increase the direct memory limit:
docker run -p 9092:9092 \
-e JAVA_TOOL_OPTIONS="-XX:MaxDirectMemorySize=256m" \
redisfield/korvet:latest
Or in Docker Compose:
services:
korvet:
image: redisfield/korvet:latest
environment:
JAVA_TOOL_OPTIONS: "-XX:MaxDirectMemorySize=256m"