# 使用官方 Python 3.10 slim 镜像 FROM python:3.10-slim # 设置工作目录 WORKDIR /app # 安装系统依赖(ODPS、SSL等) RUN apt-get update && apt-get install -y \ gcc \ g++ \ libssl-dev \ libffi-dev \ curl \ && rm -rf /var/lib/apt/lists/* # 复制依赖文件 COPY examples/auto_put_ad_mini/requirements.txt . # 安装 Python 依赖 RUN pip install --no-cache-dir -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=5s --retries=3 \ CMD curl -f http://localhost:8080/health || python -c "import pathlib; pathlib.Path('/app/outputs').exists()" || exit 1 # 默认命令:启动 FastAPI 服务器(而非单次执行) # 如需单次执行,可覆盖为:docker run python execute_once.py CMD ["python", "server.py"]