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

# 设置工作目录
WORKDIR /app

# 安装系统依赖（中文字体 + Pillow/reportlab 依赖）
RUN apt-get update && apt-get install -y --no-install-recommends \
    gcc \
    libjpeg-dev \
    zlib1g-dev \
    libfreetype6-dev \
    liblcms2-dev \
    libopenjp2-7-dev \
    libtiff5-dev \
    libwebp-dev \
    libharfbuzz-dev \
    libfribidi-dev \
    fonts-wqy-zenhei \
    fonts-wqy-microhei \
    && rm -rf /var/lib/apt/lists/*

# 复制依赖并安装
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# 复制项目代码
COPY . .

# 创建媒体目录
RUN mkdir -p /app/media/signatures

# 收集静态文件
RUN python manage.py collectstatic --noinput || echo "collectstatic skipped"

# 微信云托管默认服务端口为 8080
EXPOSE 8080

# 启动命令：先尝试 migrate（失败不阻断），再启动 gunicorn
CMD ["sh", "-c", "python manage.py migrate --noinput 2>/dev/null || echo 'Migrate skipped or failed'; gunicorn safety_exam.wsgi:application --bind 0.0.0.0:8080 --workers 2 --threads 4 --timeout 60"]
