Files
HealthLog/docker-entrypoint.sh
T
Marc-André Bombeck 38309932f3 Initial release v1.0.0
HealthLog — personal health-tracking PWA with weight, blood pressure,
pulse, mood tracking, medication compliance, Withings integration,
doctor report PDF export, and Dracula-themed UI.
2026-03-10 20:14:33 +01:00

34 lines
1.3 KiB
Bash

#!/bin/sh
set -e
# ── Wait for PostgreSQL ──────────────────────────────────────
MAX_RETRIES=30
RETRY=0
echo "HealthLog: Waiting for database..."
until node -e "
const { createConnection } = require('net');
const url = new URL(process.env.DATABASE_URL);
const sock = createConnection(Number(url.port) || 5432, url.hostname);
sock.on('connect', () => { sock.destroy(); process.exit(0); });
sock.on('error', () => process.exit(1));
" 2>/dev/null; do
RETRY=$((RETRY + 1))
if [ "$RETRY" -ge "$MAX_RETRIES" ]; then
echo "HealthLog: ERROR — Database not reachable after ${MAX_RETRIES}s, aborting."
exit 1
fi
sleep 1
done
echo "HealthLog: Database is reachable."
# ── Run Prisma migrations ────────────────────────────────────
echo "HealthLog: Running database migrations..."
NODE_PATH=/opt/prisma-cli/node_modules \
node /opt/prisma-cli/node_modules/prisma/build/index.js migrate deploy
echo "HealthLog: Migrations complete."
# ── Start application ────────────────────────────────────────
echo "HealthLog: Starting application..."
exec "$@"