FROM python:3.11-slim

WORKDIR /app

# نصب وابستگی‌های سیستم
RUN apt-get update && apt-get install -y \
    gcc \
    g++ \
    default-libmysqlclient-dev \
    pkg-config \
    wget \
    gnupg \
    && rm -rf /var/lib/apt/lists/*

# نصب Chrome برای Selenium
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - \
    && echo "deb 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/*

# نصب ChromeDriver
RUN wget -q https://storage.googleapis.com/chrome-for-testing-public/119.0.6045.105/linux64/chromedriver-linux64.zip \
    && unzip chromedriver-linux64.zip \
    && mv chromedriver-linux64/chromedriver /usr/local/bin/ \
    && rm -rf chromedriver-linux64.zip chromedriver-linux64

# کپی فایل‌های نیازمندی
COPY requirements.txt .

# نصب وابستگی‌های پایتون
RUN pip install --no-cache-dir -r requirements.txt

# کپی کد برنامه
COPY . .

# ایجاد پوشه‌های لازم
RUN mkdir -p /app/uploads /app/temp/{screenshots,results}

# تغییر مالکیت پوشه‌ها
RUN chmod -R 755 /app/uploads /app/temp

# پورت اپلیکیشن
EXPOSE 8000

# اجرای برنامه
CMD ["python", "main.py"]
