# 使用官方 Python 运行时作为父镜像
FROM python:3.9-slim

# 设置工作目录
WORKDIR /app

# 设置环境变量
# 防止 Python 生成 .pyc 文件
ENV PYTHONDONTWRITEBYTECODE=1
# 确保 Python 输出不被缓冲
ENV PYTHONUNBUFFERED=1
# 禁用 Python 的硬件指令集检查，提高Chromium兼容性
ENV PYTHONHASHSEED=0

# 安装 Playwright 所需的系统依赖 + 网络优化
RUN apt-get update && apt-get install -y --no-install-recommends \
    wget \
    ca-certificates \
    fonts-liberation \
    libasound2 \
    libatk-bridge2.0-0 \
    libatk1.0-0 \
    libcups2 \
    libdbus-1-3 \
    libdrm2 \
    libgbm1 \
    libgtk-3-0 \
    libnspr4 \
    libnss3 \
    libxcomposite1 \
    libxdamage1 \
    libxrandr2 \
    xdg-utils \
    dnsmasq \
    && rm -rf /var/lib/apt/lists/*

# 复制依赖文件
COPY requirements.txt .

# 安装 Python 依赖
# 使用阿里云镜像源加速
RUN pip install --no-cache-dir -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

# 安装 Playwright Chromium 浏览器（增加超时以处理网络不稳定）
RUN PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=0 playwright install --with-deps chromium

# 复制当前目录内容到容器中的 /app
COPY . .

# 创建上传目录和数据目录（确保权限）
RUN mkdir -p uploads data downloads && chmod 777 uploads data downloads

# 暴露端口 5000
EXPOSE 5000

# 增加容器内存限制和进程管理
# 运行 app.py
CMD ["python", "app.py"]
