#!/usr/bin/env bash set -e # 1) Wait for MySQL DB_HOST="${DB_HOST:-${MYSQL_HOST:-db}}" DB_PORT="${DB_PORT:-${MYSQL_PORT:-3306}}" echo "[⏳] Waiting for database at $DB_HOST:$DB_PORT..." until nc -z "$DB_HOST" "$DB_PORT"; do sleep 1; done echo "[✔] Database is up" # 2) Ensure uploads dir exists/writable UPLOAD_DIR="/app/${UPLOAD_FOLDER:-data/uploads}" mkdir -p "$UPLOAD_DIR" chown -R appuser:appuser "$UPLOAD_DIR" chmod -R u+rwX,g+rwX,o+rX "$UPLOAD_DIR" echo "⏺️ Upload directory ready at $UPLOAD_DIR" # 3) If launching Flask, handle schema + migrations + seeding if [ "$1" = "flask" ]; then # A) Create any truly missing tables (so FKs won’t break) echo "[🛠️] Ensuring tables via create_all()" python <