# 使用官方 Python 3.10 slim 镜像（支持多架构）
FROM python:3.10-slim

# 设置工作目录
WORKDIR /app

# 安装系统依赖（使用阿里云镜像源）
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 curl \
    && rm -rf /var/lib/apt/lists/*

# 复制依赖文件
COPY examples/auto_put_ad_mini/requirements.txt .

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

# 复制 Agent 框架（从项目根目录）
COPY agent /app/agent

# 复制项目文件（排除 outputs/ 和 .venv/，不包含agent目录）
COPY examples/auto_put_ad_mini/*.py /app/
COPY examples/auto_put_ad_mini/prompts /app/prompts/
COPY examples/auto_put_ad_mini/tools /app/tools/
COPY examples/auto_put_ad_mini/skills /app/skills/
COPY examples/auto_put_ad_mini/db /app/db/
COPY examples/auto_put_ad_mini/*.json /app/
COPY examples/auto_put_ad_mini/*.md /app/

# 创建输出目录
RUN mkdir -p outputs/{raw,ad_status,reports,execution_log,data}

# 设置环境变量（生产环境覆盖）
ENV PYTHONUNBUFFERED=1 \
    TZ=UTC \
    PYTHONPATH=/app

# 暴露端口（用于 FastAPI server.py）
EXPOSE 8080

# 健康检查（使用 FastAPI 端点，如果可用）
HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \
    CMD curl -f http://localhost:8080/health || python -c "import pathlib; pathlib.Path('/app/outputs').exists()" || exit 1

# 默认命令：启动 FastAPI 服务器（而非单次执行）
# 如需单次执行，可覆盖为：docker run <image> python execute_once.py
CMD ["python", "server.py"]
