#!/usr/bin/env bash set -e # 1) Wait for MySQL to come up 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 the shared upload directory is owned and 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 "⏺️ Ensured upload directory exists and is owned by appuser: $UPLOAD_DIR" # 3) If we're launching Flask, run migrations and optional seed if [ "$1" = "flask" ]; then echo "[πŸ› οΈ] Applying database migrations" flask db upgrade echo "[πŸ› οΈ] Ensuring any missing tables" python <