Spaces:
Running
Running
File size: 1,363 Bytes
7d29f50 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | 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"] |