guohanghui/scanpy
0
1FROM python:3.102 3# 安装系统依赖(包括编译 ephem 所需的依赖)4RUN apt-get update && apt-get install -y \5 git \6 build-essential \7 python3-dev \8 && rm -rf /var/lib/apt/lists/*9 10# 升级 pip11RUN python -m pip install --upgrade pip setuptools wheel12 13# 创建非 root 用户14RUN useradd -m -u 1000 user15USER user16 17# 设置环境变量18ENV PATH="/home/user/.local/bin:$PATH"19ENV PYTHONPATH=/app/scanpy/source:$PYTHONPATH20ENV MCP_TRANSPORT=http21ENV MCP_PORT=786022 23# 设置工作目录24WORKDIR /app25 26# 复制代码(必须先复制才能编译本地 ephem)27COPY --chown=user:user . /app28 29# 在非 root 用户前安装 ephem 的编译依赖(必须用 root)30USER root31RUN apt-get update && apt-get install -y \32 python3-dev \33 && rm -rf /var/lib/apt/lists/*34USER user35 36# 复制并安装依赖37COPY --chown=user:user ./requirements.txt requirements.txt38RUN pip install --no-cache-dir --user --upgrade -r requirements.txt39 40# 编译本地的 ephem 源码41RUN cd /app/pyephem/source && python setup.py build_ext --inplace 2>&1 || echo "Trying pip install in-place build..."42RUN pip install --no-cache-dir --user -e /app/pyephem/source 2>&1 || true43 44# 复制代码(必须先复制才能编译本地 ephem)45COPY --chown=user:user . /app46 47# 端口暴露48EXPOSE 786049 50# 启动命令51CMD ["python", "scanpy/mcp_output/start_mcp.py"]