FROM registry.cn-hangzhou.aliyuncs.com/stuuudy/python:3.11-slim AS base

WORKDIR /app

ENV PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1 \
    TZ=Asia/Shanghai \
    PYTHONPATH=/app

# 安装编译工具链（pyodps 等依赖构建 wheel 可能需要 gcc）
RUN sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/debian.sources && \
    apt-get update && \
    apt-get install -y --no-install-recommends gcc g++ libc6-dev tzdata && \
    ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && \
    echo $TZ > /etc/timezone && \
    rm -rf /var/lib/apt/lists/*

# 1) 安装依赖（利用 Docker layer 缓存）
COPY requirements.txt /app/requirements.txt
RUN pip install --no-cache-dir --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple/ && \
    pip install --no-cache-dir -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

# 2) 仅复制运行所需源码，避免工作区临时文件进入镜像
COPY app /app/app

# 定时任务调度：热点搜索(6/12/18) + 解构后处理(30分钟) + ODPS 需求表写入
CMD ["python", "-m", "app.scheduler"]
