| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- # 使用官方 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 <image> python execute_once.py
- CMD ["python", "server.py"]
|