Files
2026-01-17 08:55:37 +00:00

61 lines
1.9 KiB
Docker

FROM python:3.11-slim
WORKDIR /app
# 安装系统依赖
RUN apt-get update && apt-get install -y \
curl \
&& rm -rf /var/lib/apt/lists/*
# 复制requirements文件
COPY agents/search_agent/search_agent_A2A/requirements.txt /app/requirements.txt
COPY agents/search_agent/search_agent/search_agent/requirements.txt /app/search_agent_requirements.txt
# 安装Python依赖
# 先安装基础依赖(a2a-sdk的依赖)
RUN pip install --no-cache-dir \
fastapi>=0.109.0 \
uvicorn[standard]>=0.27.0 \
pydantic>=2.5.3 \
httpx>=0.27.0 \
python-dotenv>=1.0.0 \
orjson>=3.9.0 \
typing-extensions>=4.9.0 \
loguru>=0.7.0 \
asyncio-throttle>=1.0.2 \
aiohttp>=3.9.0 \
requests>=2.31.0
# 安装A2A SDK(包含http-server支持)
RUN pip install --no-cache-dir "a2a-sdk[http-server]>=0.3.0"
# 安装search_agent核心依赖(如果存在)
RUN if [ -f /app/search_agent_requirements.txt ]; then \
pip install --no-cache-dir -r /app/search_agent_requirements.txt; \
fi
# 复制search_agent_A2A目录
COPY agents/search_agent/search_agent_A2A/ /app/
# 复制search_agent核心代码
COPY agents/search_agent/search_agent/search_agent/ /app/search_agent/
# 设置环境变量
ENV PYTHONUNBUFFERED=1
ENV SERVICE_HOST=0.0.0.0
ENV SERVICE_PORT=8080
ENV PYTHONPATH=/app
# 默认 API 密钥(硬编码)
ENV JINA_API_KEY=jina_e26dc30420a44a1e859216528065b203TkMRmsoz-FgMDQC5FZX9jr5oF2CI
ENV SERPER_API_KEY=8253b4f240b520194065312f90e85f9be0fa205f
# 健康检查 - A2A SDK默认提供根路径和/.well-known/agent.json
# 先尝试根路径,如果不可用则尝试health端点
HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \
CMD python3 -c "import urllib.request; import json; response = urllib.request.urlopen('http://localhost:8080/'); response.read()" || exit 1
# 运行agent (直接使用Python,避免shell)
CMD ["python3", "-u", "main.py"]