61 lines
1.9 KiB
Docker
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"]
|
|
|