克隆源码:
git clone https://github.com/zilliztech/mcp-server-milvus.git
添加Dockerfile
FROM python:3.12-slim
WORKDIR /app
# 安装系统依赖
RUN apt-get update && apt-get install -y \
curl \
git \
build-essential \
&& rm -rf /var/lib/apt/lists/*
# 使用 pip 安装 uv(替代 curl 方式)
#RUN pip install --no-cache-dir uv -i https://pypi.tuna.tsinghua.edu.cn/simple
RUN curl -LsSf https://astral.sh/uv/install.sh | sh
# 或者使用更可靠的方式
# RUN pip install --no-cache-dir uv==0.3.0
# 复制依赖文件
COPY pyproject.toml uv.lock README.md ./
# 为 uv 设置镜像源环境变量
ENV UV_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple
# 使用 uv 安装依赖
# 3. (关键)在构建时安装Python依赖到系统,而非虚拟环境
RUN pip install uv && \
uv pip install --system -r pyproject.toml
# RUN uv pip install --system -r pyproject.toml -i https://pypi.tuna.tsinghua.edu.cn/simple
# 复制源代码
COPY src/ ./src/
# 暴露端口
EXPOSE 8000
CMD ["uv", "run", "src/mcp_server_milvus/server.py", "--sse", "--milvus-uri", "http://milvus:19530", "--port", "8000"]
docker-compose.yaml
services:
mcp-milvus-server:
build: .
container_name: mcp-milvus-server
extra_hosts:
- "host.docker.internal:host-gateway"
environment:
- MILVUS_URI=http://host.docker.internal:19530
# - MILVUS_TOKEN=http://localhost:19530
# - MILVUS_DB=http://localhost:19530
ports:
- "8012:8000"
volumes:
- ./src:/app/src
# depends_on:
# milvus:
# condition: service_healthy
command: uv run src/mcp_server_milvus/server.py --sse --milvus-uri http://milvus:19530 --port 8000
networks:
- n8n_network
volumes:
milvus_data:
milvus_conf:
etcd_data:
minio_data:
networks:
n8n_network:
external: true
login-mcp-milvus-server.sh
BIN_PATH=$(cd `dirname $0`; pwd)
cd $BIN_PATH/mcp-server-milvus
docker compose exec -it mcp-milvus-server /bin/bash
logs-mcp-milvus-server.sh
BIN_PATH=$(cd `dirname $0`; pwd)
cd $BIN_PATH/mcp-server-milvus
docker compose logs -f
start-mcp-milvus-server.sh
BIN_PATH=$(cd `dirname $0`; pwd)
cd $BIN_PATH/mcp-server-milvus
docker compose up -d
docker compose logs -f
shutdown-mcp-milvus-server.sh
BIN_PATH=$(cd `dirname $0`; pwd)
cd $BIN_PATH/mcp-server-milvus
docker compose down
restart-mcp-milvus-server.sh
BIN_PATH=$(cd `dirname $0`; pwd)
cd $BIN_PATH
pwd
./shutdown-mcp-milvus-server.sh
./start-mcp-milvus-server.sh