Spaces:
Running
Running
| FROM python:3.10 | |
| # 安装系统依赖(包括编译 ephem 所需的依赖) | |
| RUN apt-get update && apt-get install -y \ | |
| git \ | |
| build-essential \ | |
| python3-dev \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # 升级 pip | |
| RUN python -m pip install --upgrade pip setuptools wheel | |
| # 创建非 root 用户 | |
| RUN useradd -m -u 1000 user | |
| USER user | |
| # 设置环境变量 | |
| ENV PATH="/home/user/.local/bin:$PATH" | |
| ENV PYTHONPATH=/app/scanpy/source:$PYTHONPATH | |
| ENV MCP_TRANSPORT=http | |
| ENV MCP_PORT=7860 | |
| # 设置工作目录 | |
| WORKDIR /app | |
| # 复制代码(必须先复制才能编译本地 ephem) | |
| COPY --chown=user:user . /app | |
| # 在非 root 用户前安装 ephem 的编译依赖(必须用 root) | |
| USER root | |
| RUN apt-get update && apt-get install -y \ | |
| python3-dev \ | |
| && rm -rf /var/lib/apt/lists/* | |
| USER user | |
| # 复制并安装依赖 | |
| COPY --chown=user:user ./requirements.txt requirements.txt | |
| RUN pip install --no-cache-dir --user --upgrade -r requirements.txt | |
| # 编译本地的 ephem 源码 | |
| RUN cd /app/pyephem/source && python setup.py build_ext --inplace 2>&1 || echo "Trying pip install in-place build..." | |
| RUN pip install --no-cache-dir --user -e /app/pyephem/source 2>&1 || true | |
| # 复制代码(必须先复制才能编译本地 ephem) | |
| COPY --chown=user:user . /app | |
| # 端口暴露 | |
| EXPOSE 7860 | |
| # 启动命令 | |
| CMD ["python", "scanpy/mcp_output/start_mcp.py"] |