DEV Community

Naman Vashistha
Naman Vashistha

Posted on

Deploying LimeDB with Docker: New Official Guide & Container Specs

Github: namanvashistha/limedb

We've just merged an important commit to the LimeDB repository, significantly enhancing the deployment experience for developers and operators. The README.md now includes a dedicated section detailing Docker deployment instructions and container specifications.

What is LimeDB?

For those new to it, LimeDB is a lightweight, fast, open-source distributed key-value store designed for high-performance systems. Its goal is to provide a robust and efficient storage solution that's easy to integrate and scale.

What's New in the README?

This update introduces a comprehensive guide to deploying LimeDB using Docker, covering both development and production scenarios. Here’s a breakdown of what you'll find:

Container Specifications

The new documentation outlines the characteristics of the official LimeDB Docker images:

  • Base Image: Built on Amazon Corretto 21 Alpine for robust Java performance.
  • Size: Optimized to 384MB, which is 47% smaller than standard images, reducing download times and disk usage.
  • Memory: Configurable heap memory from 256MB to 1GB, allowing fine-tuning for different workloads.
  • Security: Runs as a non-root user with a minimal attack surface.
  • Signals: Proper signal handling is ensured with dumb-init.

Development Setup

Learn how to quickly get a LimeDB instance running for local development:

  • Instructions for building an optimized Docker image locally.
  • Commands to start a single LimeDB node, demonstrating how to connect it to an external PostgreSQL database using environment variables like NODE_ID, DB_HOST, DB_USERNAME, and DB_PASSWORD.

Production Cluster Deployment

For more robust setups, the guide includes:

  • Examples for deploying a full LimeDB cluster with PostgreSQL using docker-compose -f docker-compose.prod.yml up -d.
  • How to override default configurations, such as database passwords and JVM memory settings (JVM_MEMORY_OPTS), directly via environment variables when launching the cluster.

Environment Variables

A detailed table explains all configurable environment variables, including NODE_ID, database connection details (DB_HOST, DB_PORT, DB_USERNAME, DB_PASSWORD), and JVM tuning options (JVM_MEMORY_OPTS, JAVA_OPTS).

Health Checks

Ensure your LimeDB containers and applications are running smoothly with the provided health check commands, including docker ps, curl http://localhost:7001/actuator/health for application status, and curl http://localhost:7001/cluster/state | jq for cluster metrics.

Why This Matters

This update is crucial for several reasons:

  • Simplified Deployment: It drastically lowers the barrier to entry for running LimeDB, whether for evaluation, development, or production.
  • Consistency: Provides a standardized, reproducible way to deploy LimeDB across different environments.
  • Operational Efficiency: The optimized container specifications and clear instructions help reduce operational overhead and improve resource utilization.
  • Best Practices: Encourages secure and efficient container deployment methodologies from the outset.

We encourage everyone to explore the updated README.md and leverage these new Docker deployment capabilities to get LimeDB up and running faster than ever. Your feedback is always welcome!

Top comments (0)