Spaces:
Sleeping
Sleeping
| # Use public Python base image for HuggingFace compatibility | |
| FROM python:3.11-slim | |
| # Set working directory | |
| WORKDIR /app/env | |
| # Install system dependencies for Playwright and browsers | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| # Playwright browser dependencies | |
| libnss3 \ | |
| libnspr4 \ | |
| libatk1.0-0 \ | |
| libatk-bridge2.0-0 \ | |
| libcups2 \ | |
| libdrm2 \ | |
| libdbus-1-3 \ | |
| libxkbcommon0 \ | |
| libatspi2.0-0 \ | |
| libxcomposite1 \ | |
| libxdamage1 \ | |
| libxfixes3 \ | |
| libxrandr2 \ | |
| libgbm1 \ | |
| libpango-1.0-0 \ | |
| libcairo2 \ | |
| libasound2 \ | |
| libxshmfence1 \ | |
| fonts-unifont \ | |
| fonts-noto-color-emoji \ | |
| # Additional dependencies | |
| git \ | |
| wget \ | |
| curl \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # Copy environment files first (for better caching) | |
| COPY . . | |
| # Make start script executable | |
| RUN chmod +x /app/env/server/start.sh | |
| # Install Python dependencies using pip install -e . (from pyproject.toml) | |
| RUN pip install --no-cache-dir -e . | |
| # Install Playwright browsers (Chromium by default) | |
| # Use python -m since playwright command might not be in PATH | |
| RUN python -m playwright install chromium | |
| # Install MiniWoB++ tasks | |
| RUN git clone --depth 1 https://github.com/Farama-Foundation/miniwob-plusplus.git /app/miniwob-plusplus | |
| # Set environment variables | |
| ENV PYTHONUNBUFFERED=1 | |
| ENV BROWSERGYM_BENCHMARK=miniwob | |
| ENV BROWSERGYM_TASK_NAME="click-test" | |
| ENV BROWSERGYM_HEADLESS=true | |
| ENV BROWSERGYM_VIEWPORT_WIDTH=1280 | |
| ENV BROWSERGYM_VIEWPORT_HEIGHT=720 | |
| ENV BROWSERGYM_TIMEOUT=10000 | |
| ENV BROWSERGYM_PORT=8000 | |
| ENV MINIWOB_HTML_DIR=/app/miniwob-plusplus/miniwob/html | |
| ENV MINIWOB_HTTP_PORT=8888 | |
| ENV MINIWOB_URL=http://127.0.0.1:8888/miniwob/ | |
| ENV ENABLE_WEB_INTERFACE=true | |
| # For WebArena tasks, these should be set by the user when running the container: | |
| # ENV SHOPPING= | |
| # ENV SHOPPING_ADMIN= | |
| # ENV REDDIT= | |
| # ENV GITLAB= | |
| # ENV MAP= | |
| # ENV WIKIPEDIA= | |
| # ENV HOMEPAGE= | |
| # Expose ports | |
| EXPOSE 8000 | |
| EXPOSE 8888 | |
| # Health check | |
| HEALTHCHECK --interval=30s --timeout=3s --start-period=10s --retries=3 \ | |
| CMD curl -f http://localhost:8000/health || exit 1 | |
| # Run the server using the start script | |
| CMD ["/app/env/server/start.sh"] | |