Spaces:
Sleeping
Sleeping
| # Use the same Python base image | |
| FROM python:3.9 | |
| # Switch to root user temporarily to install system packages | |
| USER root | |
| # Install system dependencies: | |
| # - chromium-browser: The browser Selenium will control | |
| # - chromium-chromedriver: The driver executable Selenium uses to talk to Chrome | |
| # - Recommended: Clean up apt cache afterwards to keep image size down | |
| RUN apt-get update && apt-get install -y \ | |
| chromium \ | |
| chromium-driver \ | |
| --no-install-recommends \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # --- Back to your original Dockerfile structure --- | |
| # Create a non-root user for security | |
| RUN useradd -m -u 1000 user | |
| # Switch to the non-root user | |
| USER user | |
| # Add user's local bin to PATH (good practice, esp. if pip installs executables) | |
| ENV PATH="/home/user/.local/bin:$PATH" | |
| # Set the working directory | |
| WORKDIR /app | |
| # Clone the repo to current directory | |
| RUN git clone https://github.com/nishantprime/WebProxy.git . | |
| # Copy the rest of the application code from the host to the container | |
| COPY --chown=user . /app | |
| # Install Python dependencies listed in requirements.txt | |
| # Use --user flag as we are running as non-root user | |
| # Make sure requirements.txt now includes: flask, requests, beautifulsoup4, selenium, gunicorn | |
| RUN pip install --no-cache-dir --user --upgrade -r requirements.txt | |
| # Copy the rest of your application code (including your modified app.py) | |
| # This replaces the git clone step, assuming your local code is what you want to deploy. | |
| COPY --chown=user . /app | |
| # Specify the command to run the application with Gunicorn | |
| # Ensure app.py is the file containing your Flask app instance named 'app' | |
| CMD ["gunicorn", "app:app", "-b", "0.0.0.0:7860"] |