Trisha Tomy
removed debug
9459102
raw
history blame
2.3 kB
# 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.
# We only need to add git and xvfb (if not already present and needed for xvfb-run in CMD).
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 ---
# 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
# Install the rest of the Python dependencies from requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
# Copy your Flask application code (app.py) and other project files.
COPY . .
# --- 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 redundant Playwright installation and debugging commands
# The base image already includes Playwright and its browsers.
# 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.
# xvfb-run is still needed if Playwright is launched in non-headless mode in app.py
CMD ["xvfb-run", "gunicorn", "--bind", "0.0.0.0:7860", "--workers", "2", "--worker-class", "gevent", "app:app", "--timeout", "300"]