| FROM python:3.9-slim | |
| # Install system dependencies | |
| RUN apt-get update && apt-get install -y \ | |
| wget \ | |
| gnupg \ | |
| unzip \ | |
| curl \ | |
| software-properties-common \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # Add Google Chrome repository and 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 ChromeDriver | |
| RUN CHROMEDRIVER_VERSION=`curl -sS chromedriver.storage.googleapis.com/LATEST_RELEASE` && \ | |
| mkdir -p /opt/chromedriver-$CHROMEDRIVER_VERSION && \ | |
| curl -sS -o /tmp/chromedriver_linux64.zip http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip && \ | |
| unzip -qq /tmp/chromedriver_linux64.zip -d /opt/chromedriver-$CHROMEDRIVER_VERSION && \ | |
| rm /tmp/chromedriver_linux64.zip && \ | |
| chmod +x /opt/chromedriver-$CHROMEDRIVER_VERSION/chromedriver && \ | |
| ln -fs /opt/chromedriver-$CHROMEDRIVER_VERSION/chromedriver /usr/local/bin/chromedriver | |
| # Set working directory | |
| WORKDIR /workspace | |
| # Copy requirements and install Python dependencies | |
| COPY requirements.txt . | |
| RUN pip install --no-cache-dir -r requirements.txt | |
| # Copy application code | |
| COPY app.py . | |
| # Set environment variables | |
| ENV PYTHONUNBUFFERED=True | |
| ENV PYTHONDONTWRITEBYTECODE=True | |
| # Expose port | |
| EXPOSE 7860 | |
| # Run application | |
| CMD ["python", "app.py"] |