#!/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