FROM python:3.11-slim RUN useradd -m -u 1000 user USER user ENV PATH="/home/user/.local/bin:$PATH" WORKDIR /app # Install dependencies COPY --chown=user afridialeval/requirements.txt requirements.txt RUN pip install --no-cache-dir --upgrade -r requirements.txt # Copy application code and data COPY --chown=user . /app # DATABASE_URL should be set as a HF Space secret pointing to Supabase PostgreSQL. # Fallback: /tmp SQLite (ephemeral, rebuilt each restart from JSON files). ENV DB_PATH=/tmp/afridialeval.db # Expose port 7860 (HF Spaces default) EXPOSE 7860 # Start: check DB, import data (skips if PostgreSQL already populated), seed users, run server CMD bash -c "\ echo '===== Application Startup at $(date -u +%Y-%m-%d\ %H:%M:%S) =====' && \ python -m afridialeval.check_db && \ python -m afridialeval.import_data --batch full && \ bash seed_users.sh && \ gunicorn afridialeval.app:app -w 1 -k uvicorn.workers.UvicornWorker --bind 0.0.0.0:7860"