mirror of
https://github.com/kikootwo/ReadMeABook.git
synced 2026-06-02 20:30:10 +00:00
Detect external DB/Redis via flags; sanitize URLs
Improve entrypoint handling for external services and startup wrappers. entrypoint.sh now more robustly parses REDIS_URL (handles optional :password@host) and masks credentials when printing DATABASE_URL/REDIS_URL. It exports USE_EXTERNAL_POSTGRES and USE_EXTERNAL_REDIS so supervisor wrappers can decide behavior without re-parsing URLs. The temporary PostgreSQL shutdown was moved to after Prisma migrations and a warning was added when pushing schema to an external DB. postgres-start.sh and redis-start.sh were simplified to check the USE_EXTERNAL_* flags and sleep if an external service is configured. Also cleaned up formatting of the PostgreSQL ownership error message.
This commit is contained in:
@@ -1,10 +1,7 @@
|
||||
#!/bin/bash
|
||||
# PostgreSQL startup wrapper for unified container
|
||||
# Smart supervisor: detects external PostgreSQL and sleeps instead of starting local instance
|
||||
#
|
||||
# Behavior:
|
||||
# - If DATABASE_URL points to external host (not 127.0.0.1/localhost), sleep infinity
|
||||
# - Otherwise, start local PostgreSQL instance
|
||||
# Checks USE_EXTERNAL_POSTGRES flag (set by entrypoint) to decide whether
|
||||
# to start the local instance or sleep to keep supervisord happy.
|
||||
|
||||
set -e
|
||||
|
||||
@@ -15,25 +12,10 @@ if [ -f /etc/environment ]; then
|
||||
set +a
|
||||
fi
|
||||
|
||||
echo "[PostgreSQL] Checking for external database configuration..."
|
||||
|
||||
# Extract host from DATABASE_URL
|
||||
# Format: postgresql://user:pass@host:port/db
|
||||
if [ -n "$DATABASE_URL" ]; then
|
||||
# Extract the host part (between @ and :port or /)
|
||||
DB_HOST=$(echo "$DATABASE_URL" | sed -n 's|.*@\([^:/]*\).*|\1|p')
|
||||
|
||||
echo "[PostgreSQL] Detected DATABASE_URL host: $DB_HOST"
|
||||
|
||||
# Check if host is external (not localhost or 127.0.0.1)
|
||||
if [ "$DB_HOST" != "127.0.0.1" ] && [ "$DB_HOST" != "localhost" ]; then
|
||||
echo "[PostgreSQL] ✅ External PostgreSQL detected at $DB_HOST"
|
||||
echo "[PostgreSQL] Skipping local PostgreSQL startup - sleeping to keep supervisord happy"
|
||||
exec sleep infinity
|
||||
fi
|
||||
if [ "$USE_EXTERNAL_POSTGRES" = "true" ]; then
|
||||
echo "[PostgreSQL] External database configured - skipping local instance"
|
||||
exec sleep infinity
|
||||
fi
|
||||
|
||||
echo "[PostgreSQL] Starting local PostgreSQL server..."
|
||||
|
||||
# Start PostgreSQL as postgres user
|
||||
exec /usr/lib/postgresql/16/bin/postgres -D /var/lib/postgresql/data
|
||||
|
||||
Reference in New Issue
Block a user