Ver código fonte

fix(docker): 修复 MCP Dockerfile uv 依赖安装

sansan 1 mês atrás
pai
commit
13b321842e
1 arquivos alterados com 11 adições e 6 exclusões
  1. 11 6
      docker/Dockerfile.mcp

+ 11 - 6
docker/Dockerfile.mcp

@@ -2,16 +2,21 @@ FROM python:3.12-slim-bookworm
 
 WORKDIR /app
 
-# 安装依赖(uv + lock 文件 hash 校验)
+# 从官方镜像拷贝 uv 二进制
+COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
+
+# 先安装依赖(利用 Docker 层缓存)
 COPY pyproject.toml uv.lock ./
-RUN pip install --no-cache-dir uv && \
-    uv pip install --system --frozen --no-cache && \
-    pip uninstall -y uv
+RUN --mount=type=cache,target=/root/.cache/uv \
+    uv sync --locked --no-install-project --no-dev
 
-# 复制 MCP 服务器代码
+# 复制 MCP 服务器代码和 trendradar 模块
 COPY mcp_server/ ./mcp_server/
-# 复制 trendradar 模块(MCP 服务需要读取 SQLite 数据)
 COPY trendradar/ ./trendradar/
+RUN --mount=type=cache,target=/root/.cache/uv \
+    uv sync --locked --no-dev
+
+ENV PATH="/app/.venv/bin:$PATH"
 
 # 创建必要目录
 RUN mkdir -p /app/config /app/output