guohanghui commited on
Commit
c55bd9a
·
verified ·
1 Parent(s): 8e62e65

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +29 -12
Dockerfile CHANGED
@@ -1,25 +1,42 @@
1
- FROM continuumio/miniconda3:latest
 
 
 
 
 
 
 
 
 
 
 
 
 
2
 
3
- RUN useradd -m -u 1000 user
4
  USER user
 
5
  WORKDIR /app
6
 
7
- # 创建 conda 环境并安装 pyPDAF
8
- RUN conda create -n pypdaf -c conda-forge yumengch::pypdaf python=3.10 -y && \
9
- conda clean -afy
10
 
11
- # 激活环境
12
- SHELL ["conda", "run", "-n", "pypdaf", "/bin/bash", "-c"]
 
 
 
 
 
13
 
14
- # 复制应用代码
15
  COPY --chown=user ./pyPDAF/mcp_output /app/pyPDAF/mcp_output
16
  COPY --chown=user ./requirements.txt /app/requirements.txt
17
 
18
- # 修复导入问题:将 src.pyPDAF 替换为 pyPDAF
19
- RUN sed -i 's/from src\.pyPDAF import/from pyPDAF import/g' /app/pyPDAF/mcp_output/mcp_plugin/mcp_service.py
20
 
21
  # 安装其他依赖
22
- RUN pip install --no-cache-dir -r requirements.txt
23
 
24
  ENV PYTHONPATH=/app:$PYTHONPATH
25
  ENV MCP_TRANSPORT=http
@@ -27,4 +44,4 @@ ENV MCP_PORT=7860
27
 
28
  EXPOSE 7860
29
 
30
- CMD ["conda", "run", "--no-capture-output", "-n", "pypdaf", "python", "pyPDAF/mcp_output/start_mcp.py"]
 
1
+ FROM python:3.10
2
+
3
+ RUN apt-get update && apt-get install -y \
4
+ gfortran \
5
+ libopenmpi-dev \
6
+ openmpi-bin \
7
+ libopenblas-dev \
8
+ liblapack-dev \
9
+ pkg-config \
10
+ git \
11
+ && rm -rf /var/lib/apt/lists/*
12
+
13
+ RUN useradd -m -u 1000 user && \
14
+ python -m pip install --upgrade pip
15
 
 
16
  USER user
17
+ ENV PATH="/home/user/.local/bin:$PATH"
18
  WORKDIR /app
19
 
20
+ # 克隆完整的 pyPDAF 仓库(包含 submodule)
21
+ RUN git clone --recursive https://github.com/yumengch/pyPDAF.git pyPDAF_source
 
22
 
23
+ # 编译安装 pyPDAF
24
+ WORKDIR /app/pyPDAF_source
25
+ RUN pip install --no-cache-dir meson-python meson ninja cython numpy mpi4py && \
26
+ pip install --no-cache-dir -v .
27
+
28
+ # 回到应用目录
29
+ WORKDIR /app
30
 
31
+ # 复制 MCP 代码
32
  COPY --chown=user ./pyPDAF/mcp_output /app/pyPDAF/mcp_output
33
  COPY --chown=user ./requirements.txt /app/requirements.txt
34
 
35
+ # 修复导入语句(从 src.pyPDAF 为 pyPDAF
36
+ RUN sed -i 's/from src\.pyPDAF/from pyPDAF/g' /app/pyPDAF/mcp_output/mcp_plugin/mcp_service.py
37
 
38
  # 安装其他依赖
39
+ RUN pip install --no-cache-dir --upgrade -r requirements.txt
40
 
41
  ENV PYTHONPATH=/app:$PYTHONPATH
42
  ENV MCP_TRANSPORT=http
 
44
 
45
  EXPOSE 7860
46
 
47
+ CMD ["python", "pyPDAF/mcp_output/start_mcp.py"]