From 4ac147dc6cda0a81b4af40946037ee56c1b3425b Mon Sep 17 00:00:00 2001 From: dimgigov Date: Fri, 15 May 2026 22:23:45 +0300 Subject: [PATCH] Add Docker support for Ormin + BaraDB dev stack - docker-compose.ormin.yml: BaraDB + Ormin dev environment - clients/nim/ormin/docker/Dockerfile: dev image with Nim 2.2.10 - clients/nim/ormin/docker/entrypoint.sh: auto-install deps - docker-compose.test.yml: add Ormin compile test --- clients/nim/ormin/docker/entrypoint.sh | 29 +++++++++++++++ docker-compose.ormin.yml | 51 ++++++++++++++++++++++++++ docker-compose.test.yml | 17 +++++++++ 3 files changed, 97 insertions(+) create mode 100755 clients/nim/ormin/docker/entrypoint.sh create mode 100644 docker-compose.ormin.yml diff --git a/clients/nim/ormin/docker/entrypoint.sh b/clients/nim/ormin/docker/entrypoint.sh new file mode 100755 index 0000000..2ecb325 --- /dev/null +++ b/clients/nim/ormin/docker/entrypoint.sh @@ -0,0 +1,29 @@ +#!/bin/sh +set -eu + +# Ormin + BaraDB Dev Entrypoint +# Handles dependency installation and optional example compilation. + +DEPS_FLAG="/workspace/.deps-installed" + +# Install dependencies once +if [ ! -f "$DEPS_FLAG" ]; then + echo "[ormin-dev] Installing BaraDB client..." + cd /workspace/baradb + nimble install -y + + echo "[ormin-dev] Installing Ormin dependencies..." + cd /workspace/ormin + nimble install -y + + touch "$DEPS_FLAG" + echo "[ormin-dev] Dependencies ready." +fi + +# If no arguments, drop to shell +if [ $# -eq 0 ]; then + exec bash +fi + +# Otherwise run the provided command +exec "$@" diff --git a/docker-compose.ormin.yml b/docker-compose.ormin.yml new file mode 100644 index 0000000..04f6580 --- /dev/null +++ b/docker-compose.ormin.yml @@ -0,0 +1,51 @@ +# BaraDB + Ormin Development Stack +# +# Usage: +# docker compose -f docker-compose.ormin.yml up --build -d +# docker compose -f docker-compose.ormin.yml exec ormin-dev bash +# +# Inside the container: +# nim c -r examples/baradb_basic.nim + +services: + baradb: + build: + context: . + dockerfile: Dockerfile + image: baradb:latest + container_name: baradb-ormin + hostname: baradb + ports: + - "9472:9472" + healthcheck: + test: ["CMD", "sh", "-c", "wget -qO- http://localhost:9912/health >/dev/null 2>&1"] + interval: 5s + timeout: 3s + retries: 5 + start_period: 10s + networks: + - ormin_net + + ormin-dev: + build: + context: . + dockerfile: clients/nim/ormin/docker/Dockerfile + container_name: ormin-dev + depends_on: + baradb: + condition: service_healthy + environment: + - BARADB_HOST=baradb + - BARADB_PORT=9472 + volumes: + - ./clients/nim/ormin:/workspace/ormin + - ./clients/nim/src:/workspace/baradb/src + - ./clients/nim/baradb.nimble:/workspace/baradb/baradb.nimble + working_dir: /workspace/ormin + command: tail -f /dev/null + networks: + - ormin_net + +networks: + ormin_net: + driver: bridge diff --git a/docker-compose.test.yml b/docker-compose.test.yml index 6ce16a6..813e663 100644 --- a/docker-compose.test.yml +++ b/docker-compose.test.yml @@ -84,6 +84,23 @@ services: nim c --path:src -r tests/test_integration.nim " + test-ormin: + image: nimlang/nim:2.2.10 + depends_on: + baradb: + condition: service_healthy + environment: + - BARADB_HOST=baradb + - BARADB_PORT=9472 + volumes: + - ./clients/nim:/workspace + working_dir: /workspace/ormin + command: > + sh -c " + nimble install -y && + nim c examples/baradb_basic.nim + " + test-rust: image: rust:1.78 depends_on: