| FROM python:3.11-slim | |
| # ββ System deps for Playwright/Chromium βββββββββββββββββββββββββββββββββββ | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| wget curl gnupg ca-certificates \ | |
| libnss3 libatk-bridge2.0-0 libcups2 libxkbcommon0 \ | |
| libxcomposite1 libxdamage1 libxfixes3 libxrandr2 libgbm1 \ | |
| libasound2 libpangocairo-1.0-0 libpango-1.0-0 \ | |
| libcairo2 libatk1.0-0 libgdk-pixbuf2.0-0 \ | |
| libx11-6 libx11-xcb1 libxcb1 libxext6 libxss1 \ | |
| fonts-liberation \ | |
| build-essential libpq-dev \ | |
| && rm -rf /var/lib/apt/lists/* | |
| WORKDIR /app | |
| # ββ Python deps βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| COPY requirements.txt . | |
| RUN pip install --no-cache-dir -r requirements.txt | |
| # ββ Install Chromium for rebrowser-playwright (stealth scraper) βββββββββββββ | |
| RUN rebrowser_playwright install chromium --with-deps | |
| # ββ App code ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| COPY . . | |
| # ββ HuggingFace Spaces expects port 7860 βββββββββββββββββββββββββββββββββββ | |
| EXPOSE 7860 | |
| # ββ Run: migrate then start βββββββββββββββββββββββββββββββββββββββββββββββββ | |
| CMD ["sh", "-c", "alembic upgrade head && uvicorn app.main:app --host 0.0.0.0 --port 7860 --workers 1"] | |