FROM python:3.10-slim

WORKDIR /app

ENV VESTA_DIR=/root/tool/VESTA-gtk3-x86_64

# 安装系统依赖
RUN apt-get update && apt-get install -y --no-install-recommends \
    postgresql-client \
    gcc \
    g++ \
    python3-dev \
    libpq-dev \
    xvfb \
    xauth \
    libgl1 \
    libglu1-mesa \
    libwebkit2gtk-4.1-0 \
    libx11-6 \
    libxxf86vm1 \
    libxkbcommon0 \
    libgtk-3-0 \
    libgdk-pixbuf-2.0-0 \
    libcairo2 \
    libpango-1.0-0 \
    libpangocairo-1.0-0 \
    libpangoft2-1.0-0 \
    libfontconfig1 \
    libglib2.0-0 \
    libcurl4 \
    libnss3 \
    libatk-bridge2.0-0 \
    ca-certificates \
    && ln -sf /usr/lib/x86_64-linux-gnu/libjavascriptcoregtk-4.1.so.0 /usr/lib/x86_64-linux-gnu/libjavascriptcoregtk-4.0.so.18 \
    && ln -sf /usr/lib/x86_64-linux-gnu/libwebkit2gtk-4.1.so.0 /usr/lib/x86_64-linux-gnu/libwebkit2gtk-4.0.so.37 \
    && rm -rf /var/lib/apt/lists/*

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

# 安装Python依赖
RUN pip install --no-cache-dir -r requirements.txt

# 复制项目代码
COPY . .

# 安装本地脚本
COPY scripts/vesta-render /usr/local/bin/vesta-render
RUN chmod +x /usr/local/bin/vesta-render

# 创建必要的目录
RUN mkdir -p /app/logs /app/staticfiles /app/media /app/storage

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

# 暴露端口
EXPOSE 8000

# 启动命令
CMD ["gunicorn", "master_project.wsgi:application", "--bind", "0.0.0.0:8000", "--workers", "4"]
