guohanghui commited on
Commit
1f338d0
·
verified ·
1 Parent(s): f17408e

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +23 -17
Dockerfile CHANGED
@@ -1,6 +1,16 @@
1
- FROM python:3.10-slim
 
 
 
 
 
 
 
 
 
 
 
2
 
3
- # 创建用户
4
  RUN useradd -m -u 1000 user && \
5
  python -m pip install --upgrade pip
6
 
@@ -8,29 +18,25 @@ USER user
8
  ENV PATH="/home/user/.local/bin:$PATH"
9
  WORKDIR /app
10
 
11
- # 复制 requirements.txt 并安装基础依赖
12
- COPY --chown=user ./requirements.txt /app/requirements.txt
13
- RUN pip install --no-cache-dir numpy fastmcp || true
14
-
15
- # 尝试从 PyPI 安装 pyPDAF(如果可用)
16
- # 如果失败,服务仍可启动,但会在调用时报错
17
- RUN pip install --no-cache-dir pyPDAF || echo "pyPDAF not available from PyPI, using mock mode"
18
 
19
- # 安装其他应用依赖
20
- RUN pip install --no-cache-dir -r requirements.txt || true
 
 
21
 
22
- # 复制 MCP 服务代码
 
23
  COPY --chown=user ./pyPDAF/mcp_output /app/pyPDAF/mcp_output
 
24
 
25
- # 复制 pyPDAF 源码(备用,供参考)
26
- COPY --chown=user ./pyPDAF/source /app/pyPDAF/source
27
 
28
- # 设置环境变量
29
  ENV PYTHONPATH=/app:$PYTHONPATH
30
  ENV MCP_TRANSPORT=http
31
  ENV MCP_PORT=7860
32
 
33
  EXPOSE 7860
34
 
35
- # 启动 MCP 服务
36
- CMD ["python", "-u", "pyPDAF/mcp_output/start_mcp.py"]
 
1
+ FROM python:3.10
2
+
3
+ # 安装系统依赖
4
+ RUN apt-get update && apt-get install -y \
5
+ gfortran \
6
+ libopenmpi-dev \
7
+ openmpi-bin \
8
+ libopenblas-dev \
9
+ liblapack-dev \
10
+ pkg-config \
11
+ git \
12
+ && rm -rf /var/lib/apt/lists/*
13
 
 
14
  RUN useradd -m -u 1000 user && \
15
  python -m pip install --upgrade pip
16
 
 
18
  ENV PATH="/home/user/.local/bin:$PATH"
19
  WORKDIR /app
20
 
21
+ # 克隆完整的仓库(包含 submodule)
22
+ RUN git clone --recursive https://github.com/yumengch/pyPDAF.git pyPDAF_repo
 
 
 
 
 
23
 
24
+ # 安装 pyPDAF
25
+ WORKDIR /app/pyPDAF_repo
26
+ RUN pip install --no-cache-dir meson-python meson ninja cython numpy mpi4py && \
27
+ pip install --no-cache-dir -v .
28
 
29
+ # 回到应用目录
30
+ WORKDIR /app
31
  COPY --chown=user ./pyPDAF/mcp_output /app/pyPDAF/mcp_output
32
+ COPY --chown=user ./requirements.txt /app/requirements.txt
33
 
34
+ RUN pip install --no-cache-dir --upgrade -r requirements.txt
 
35
 
 
36
  ENV PYTHONPATH=/app:$PYTHONPATH
37
  ENV MCP_TRANSPORT=http
38
  ENV MCP_PORT=7860
39
 
40
  EXPOSE 7860
41
 
42
+ CMD ["python", "pyPDAF/mcp_output/start_mcp.py"]