Dockerfile.mcp 948 B

123456789101112131415161718192021222324252627282930
  1. FROM python:3.12-slim-bookworm
  2. WORKDIR /app
  3. # 安装依赖(uv + lock 文件 hash 校验)
  4. COPY pyproject.toml uv.lock ./
  5. RUN pip install --no-cache-dir uv && \
  6. uv pip install --system --frozen --no-cache && \
  7. pip uninstall -y uv
  8. # 复制 MCP 服务器代码
  9. COPY mcp_server/ ./mcp_server/
  10. # 复制 trendradar 模块(MCP 服务需要读取 SQLite 数据)
  11. COPY trendradar/ ./trendradar/
  12. # 创建必要目录
  13. RUN mkdir -p /app/config /app/output
  14. ENV PYTHONUNBUFFERED=1 \
  15. CONFIG_PATH=/app/config/config.yaml \
  16. FREQUENCY_WORDS_PATH=/app/config/frequency_words.txt
  17. # MCP HTTP 服务端口
  18. EXPOSE 3333
  19. HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
  20. CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:3333/sse')" || exit 1
  21. # 启动 MCP 服务器(HTTP 模式)
  22. CMD ["python", "-m", "mcp_server.server", "--transport", "http", "--host", "0.0.0.0", "--port", "3333"]