FROM python:3.11-slim # Устанавливаем зависимости для браузера и VNC (чтобы видеть экран) RUN apt-get update && apt-get install -y \ libnss3 libatk1.0-0 libatk-bridge2.0-0 libcups2 libdrm2 \ libxkbcommon0 libxcomposite1 libxdamage1 libxext6 \ libxfixes3 libxrandr2 libgbm1 libasound2 libpango-1.0-0 \ libcairo2 xvfb x11vnc fluxbox novnc && \ rm -rf /var/lib/apt/lists/* # Настройка пользователя (согласно документации HF) RUN useradd -m -u 1000 user USER user ENV HOME=/home/user \ PATH=/home/user/.local/bin:$PATH WORKDIR $HOME/app # Установка Python зависимостей COPY --chown=user requirements.txt . RUN pip install --no-cache-dir -r requirements.txt RUN playwright install chromium COPY --chown=user . . # Открываем порт 7860 EXPOSE 7860 # Запуск через xvfb, чтобы браузер мог "рисовать" в памяти CMD ["xvfb-run", "--server-args=-screen 0 1280x1024x24", "python", "app.py"]