Spaces:
Running
Running
File size: 2,817 Bytes
dd00fd0 48a68a4 689e710 1866907 689e710 f5ca79c dd00fd0 6da58ba 689e710 e36d4b5 689e710 cacfd35 e36d4b5 462e339 6170d37 cacfd35 6170d37 dd00fd0 462e339 6da58ba 689e710 462e339 689e710 e36d4b5 dd00fd0 6da58ba 1866907 93b2ed3 6170d37 689e710 6170d37 1866907 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# Use an official Playwright Docker image for Python, matching your Playwright version and Debian base
FROM mcr.microsoft.com/playwright/python:v1.53.0-noble
# Set the working directory inside the container
WORKDIR /app
# The official Playwright image comes with most necessary system dependencies,
# so we only need to add git for proxy-lite and potentially any very specific missing libs.
# Removing the extensive list as it's largely redundant with the Playwright base image.
RUN apt-get update && apt-get install -y \
git \
xvfb \
# Clean up apt caches to reduce image size
&& rm -rf /var/lib/apt/lists/*
# Copy common Python dependencies first (needed for pip installs)
COPY requirements.txt .
# --- START: Core Python and proxy-lite setup ---
# Copy your Flask application code (app.py) and other project files.
COPY . .
# Upgrade pip, setuptools, and wheel for a robust Python build environment.
RUN pip install --no-cache-dir --upgrade pip setuptools wheel
# Install proxy-lite in "editable" mode directly from its GitHub repository.
# The Playwright base image already has Playwright installed, so this just handles proxy-lite
# RUN pip install --no-cache-dir --no-input --force-reinstall -e git+https://github.com/convergence-ai/proxy-lite.git#egg=proxy-lite
RUN pip install --no-cache-dir --no-input -e .
# Install the rest of the Python dependencies from requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
# --- START: Directory permission workaround ---
# Create the directory proxy-lite's recorder insists on writing to
# and grant full permissions. This addresses the PermissionError.
RUN mkdir -p /app/src/proxy-lite/local_trajectories \
&& chmod -R 777 /app/src/proxy-lite/local_trajectories
# --- END: Directory permission workaround ---
# Set environment variables required for Playwright at runtime
ENV DISPLAY=:99
ENV XDG_RUNTIME_DIR=/tmp
# Removed PLAYWRIGHT_BROWSERS_PATH and PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD
# as the official Playwright image manages these internally, defaulting to /ms-playwright.
# --- Debugging: Check Playwright version and browser installation (moved AFTER install in the original setup) ---
# Now checking the default Playwright browser installation path /ms-playwright
RUN echo "--- Checking Playwright Version (from base image) ---"
RUN python -m playwright --version
RUN echo "--- Listing Playwright Browser Cache (Recursive, from base image) ---"
RUN ls -alR /ms-playwright/
RUN echo "-----------------------------------"
# --- End Debugging ---
# Expose the port your Flask app will listen on. Hugging Face Spaces requires 7860.
EXPOSE 7860
# Define the command to run your Flask application using Gunicorn for production.
CMD exec gunicorn --bind 0.0.0.0:7860 --workers 2 --worker-class gevent app:app --timeout 300 |