Add Docker deployment support with compose, entrypoint and docs
- Add Dockerfile (pre-built binary) and Dockerfile.source - Add docker-compose.yml, docker-compose.prod.yml, docker-compose.override.yml - Add docker-entrypoint.sh with non-root user support - Add .dockerignore and helper scripts (scripts/docker-build.sh, scripts/docker-run.sh) - Add docs/en/docker.md with full Docker guide - Update docs/en/deployment.md and README.md - Fix src/barabadb/core/config.nim to read BARADB_ADDRESS, BARADB_PORT, BARADB_DATA_DIR from env - Fix src/barabadb/core/httpserver.nim missing wire import
This commit is contained in:
Executable
+41
@@ -0,0 +1,41 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
# BaraDB Docker Entrypoint
|
||||
# Създава нужните директории и стартира сървъра с правилни настройки
|
||||
|
||||
BARADB_DATA_DIR="${BARADB_DATA_DIR:-/data}"
|
||||
BARADB_LOG_LEVEL="${BARADB_LOG_LEVEL:-info}"
|
||||
BARADB_PORT="${BARADB_PORT:-9472}"
|
||||
|
||||
# Създаваме data директорията ако не съществува
|
||||
if [ ! -d "$BARADB_DATA_DIR" ]; then
|
||||
echo "Creating data directory: $BARADB_DATA_DIR"
|
||||
mkdir -p "$BARADB_DATA_DIR"
|
||||
fi
|
||||
|
||||
# Създаваме поддиректории за WAL и SSTables ако не съществуват
|
||||
mkdir -p "$BARADB_DATA_DIR/server"
|
||||
mkdir -p "$BARADB_DATA_DIR/server/wal"
|
||||
mkdir -p "$BARADB_DATA_DIR/server/sstables"
|
||||
|
||||
# Създаваме symlink от /app/data към /data ако липсва
|
||||
if [ ! -L "/app/data" ]; then
|
||||
ln -s "$BARADB_DATA_DIR" /app/data
|
||||
fi
|
||||
|
||||
# Правим директорията собственост на baradb потребителя ако сме root
|
||||
if [ "$(id -u)" = "0" ]; then
|
||||
chown -R baradb:baradb "$BARADB_DATA_DIR"
|
||||
# Стартираме като baradb потребител (gosu за Debian, su-exec за Alpine)
|
||||
if command -v gosu >/dev/null 2>&1; then
|
||||
exec gosu baradb "$@"
|
||||
elif command -v su-exec >/dev/null 2>&1; then
|
||||
exec su-exec baradb "$@"
|
||||
else
|
||||
echo "Warning: neither gosu nor su-exec found, running as root"
|
||||
exec "$@"
|
||||
fi
|
||||
else
|
||||
exec "$@"
|
||||
fi
|
||||
Reference in New Issue
Block a user