Spaces:
Sleeping
Sleeping
| # Read the doc: https://huggingface.co/docs/hub/spaces-sdks-docker | |
| # you will also find guides on how best to write your Dockerfile | |
| FROM python:3.9 | |
| WORKDIR /app | |
| # Install system dependencies | |
| RUN apt-get update && apt-get install -y \ | |
| wget \ | |
| unzip \ | |
| gnupg2 \ | |
| libgl1-mesa-glx \ | |
| libglib2.0-0 \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # Install Chrome | |
| RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - \ | |
| && echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list \ | |
| && apt-get update \ | |
| && apt-get install -y google-chrome-stable \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # Install specific ChromeDriver version for Chrome 131 | |
| RUN wget -q "https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/131.0.6778.88/linux64/chromedriver-linux64.zip" \ | |
| && unzip chromedriver-linux64.zip \ | |
| && mv chromedriver-linux64/chromedriver /usr/local/bin/ \ | |
| && chmod +x /usr/local/bin/chromedriver \ | |
| && rm -rf chromedriver-linux64.zip chromedriver-linux64 | |
| # Create necessary directories and set permissions | |
| RUN mkdir -p /app/static/screenshots /app/static/uploads /app/static/masks /app/templates \ | |
| && useradd -m -u 1000 user \ | |
| && chown -R user:user /app | |
| USER user | |
| # Install Python dependencies | |
| COPY --chown=user requirements.txt requirements.txt | |
| RUN pip install --user -r requirements.txt | |
| # Copy application files | |
| COPY --chown=user . . | |
| # Set environment variables | |
| ENV PATH="/home/user/.local/bin:${PATH}" | |
| ENV PYTHONPATH="/home/user/.local/lib/python3.9/site-packages:${PYTHONPATH}" | |
| ENV CHROME_BINARY_LOCATION="/usr/bin/google-chrome" | |
| ENV PORT=7860 | |
| # Run the application | |
| CMD ["python", "main.py"] | |