FROM mcr.microsoft.com/playwright/python:v1.58.0-noble ENV PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 WORKDIR /app # Xvfb for headed Chromium in container (IAAI blocks headless) RUN apt-get update -qq && apt-get install -y --no-install-recommends xvfb \ && rm -rf /var/lib/apt/lists/* COPY pyproject.toml uv.lock ./ RUN pip install --no-cache-dir uv \ && uv export --format requirements-txt --no-dev --no-hashes --no-emit-project --frozen -o /tmp/requirements.txt \ && pip install --no-cache-dir -r /tmp/requirements.txt COPY . . RUN python -m compileall -q iaai_scraper RUN chmod +x entrypoint.sh STOPSIGNAL SIGINT # По умолчанию API, но worker/beat переопределяют CMD в docker-compose ENTRYPOINT ["./entrypoint.sh"] CMD ["uvicorn", "iaai_scraper.api.app:app", "--host", "0.0.0.0", "--port", "8000"]