Queue-North-Website/docker-entrypoint.sh

29 lines
791 B
Bash

#!/bin/sh
# Ensure database and logs directories exist with proper permissions
# We run as root first (before USER directive), fix permissions, then exec to nodejs
set -e
log_error() {
echo "[$(date -Iseconds)] ERROR $1" >&2
}
# Create directories if they don't exist
mkdir -p /app/db
mkdir -p /app/logs
# Make directories world-writable to allow the nodejs user to create files
chmod 777 /app/db
chmod 777 /app/logs
# Issue #4: Check if nodejs user exists - if not, this is a Docker build error
if ! id nodejs >/dev/null 2>&1; then
log_error "nodejs user does not exist - this is a Docker build error"
exit 1
fi
# Run the Express server as nodejs user
# Issue #4: Exit with error code 1 if su-exec fails instead of falling back to root
exec su-exec nodejs node server/index.js