# ---------- build frontend ---------- FROM node:20-bookworm AS frontend-build WORKDIR /frontend COPY frontend/package.json frontend/package-lock.json* ./ RUN npm install COPY frontend/ . RUN npm run build # ---------- runtime ---------- FROM python:3.11-slim WORKDIR /app # Install system dependencies for PDF processing RUN apt-get update && apt-get install -y \ poppler-utils \ && rm -rf /var/lib/apt/lists/* # Backend deps COPY backend/requirements.txt /app/backend/requirements.txt RUN pip install --no-cache-dir -r /app/backend/requirements.txt # Copy backend code COPY backend /app/backend # Copy frontend build into /app/frontend/dist COPY --from=frontend-build /frontend/dist /app/frontend/dist # Set PYTHONPATH to include backend directory ENV PYTHONPATH=/app/backend:$PYTHONPATH # HF Spaces uses port 7860 EXPOSE 7860 CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "7860"]