FROM python:3.10 # 安装系统依赖(libGL 等) RUN apt-get update && \ apt-get install -y --no-install-recommends \ libgl1 \ build-essential \ libglib2.0-0 \ libsm6 \ libxext6 \ libxrender-dev && \ rm -rf /var/lib/apt/lists/* # 创建非 root 用户 RUN useradd -m -u 1000 user && \ python -m pip install --upgrade pip USER user ENV PATH="/home/user/.local/bin:$PATH" WORKDIR /app # 拷贝代码和 requirements COPY --chown=user ./plantcv /app/plantcv COPY --chown=user ./requirements.txt requirements.txt COPY --chown=user ./data/jpg/ /app/data/jpg/ COPY --chown=user ./data/sample/ /app/data/sample/ COPY --chown=user ./output/kmeans/ /app/output/kmeans/ # 测试:查看刚拷贝进去的内容 RUN ls -l /app/plantcv | head -n 20 \ && ls -l /app/data/jpg | head -n 20 \ && ls -l /app/data/sample | head -n 20 \ && ls -l /app/output/kmeans | head -n 20 # 安装 Python 依赖 RUN pip install --user --no-cache-dir -r requirements.txt # 复制修补脚本 COPY patch_plantcv.py . # 执行修补 RUN echo "开始修补 PlantCV..." && \ python patch_plantcv.py && \ echo "PlantCV 修补完成" # 设置 PYTHONPATH 使用源码 ENV PYTHONPATH=/app/plantcv/source:$PYTHONPATH # 验证修补是否成功 RUN python -c "from plantcv.utils import sample_images; print('✅ PlantCV sample_images 导入成功')" RUN ls -l /app && ls -l /app/data/sample # MCP 服务端配置 EXPOSE 7860 ENV MCP_TRANSPORT=http ENV MCP_PORT=7860 # 启动 MCP 服务 CMD ["python", "plantcv/mcp_output/start_mcp.py"]