guohanghui commited on
Commit
a62c7cd
·
verified ·
1 Parent(s): 596d999

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +36 -5
Dockerfile CHANGED
@@ -1,16 +1,47 @@
1
  FROM python:3.10
 
 
 
 
 
 
 
 
 
 
 
 
2
  RUN useradd -m -u 1000 user && \
3
  python -m pip install --upgrade pip
 
4
  USER user
5
  ENV PATH="/home/user/.local/bin:$PATH"
6
  WORKDIR /app
7
 
8
- COPY --chown=user ./requirements.txt requirements.txt
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
  RUN pip install --no-cache-dir --upgrade -r requirements.txt
10
 
11
- COPY --chown=user . /app
12
- ENV PYTHONPATH=/app/pyPDAF/source:$PYTHONPATH
13
- EXPOSE 7860
14
  ENV MCP_TRANSPORT=http
15
  ENV MCP_PORT=7860
16
- CMD ["python", "pyPDAF/mcp_output/start_mcp.py"]
 
 
 
 
 
1
  FROM python:3.10
2
+
3
+ # 安装系统依赖:Fortran 编译器、MPI、BLAS 库
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
+ && rm -rf /var/lib/apt/lists/*
12
+
13
+ # 创建用户
14
  RUN useradd -m -u 1000 user && \
15
  python -m pip install --upgrade pip
16
+
17
  USER user
18
  ENV PATH="/home/user/.local/bin:$PATH"
19
  WORKDIR /app
20
 
21
+ # 复制并安装 pyPDAF 源码(需要编译 C/Fortran 扩展)
22
+ COPY --chown=user ./pyPDAF/source /app/pyPDAF/source
23
+ WORKDIR /app/pyPDAF/source
24
+
25
+ # 安装构建依赖和 pyPDAF
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
+
32
+ # 复制 MCP 服务代码
33
+ COPY --chown=user ./pyPDAF/mcp_output /app/pyPDAF/mcp_output
34
+ COPY --chown=user ./requirements.txt /app/requirements.txt
35
+
36
+ # 安装应用依赖
37
  RUN pip install --no-cache-dir --upgrade -r requirements.txt
38
 
39
+ # 设置环境变量
40
+ ENV PYTHONPATH=/app:$PYTHONPATH
 
41
  ENV MCP_TRANSPORT=http
42
  ENV MCP_PORT=7860
43
+
44
+ EXPOSE 7860
45
+
46
+ # 启动 MCP 服务
47
+ CMD ["python", "pyPDAF/mcp_output/start_mcp.py"]