这次试 MCP Agent 工具链,我没有先调 prompt,而是先跑:
docker compose pull
结果 agent-ui 卡住,metrics 报 context deadline exceeded。这说明问题还没到 Agent 逻辑层,镜像阶段就没过。
拆开 compose 后发现,Agent UI、Redis、PostgreSQL、Prometheus、K8s 基础组件来自不同来源。换到服务器或新节点时,这类问题很容易复现。
我先验证这几条
docker pull docker.1ms.run/redis:7-alpine
docker pull docker.1ms.run/postgres:16-alpine
docker pull ghcr.1ms.run/open-webui/open-webui:main
docker pull quay.1ms.run/prometheus/prometheus:latest
docker pull k8s.1ms.run/pause:3.9
如果准备 GPU 环境,再加:
docker pull nvcr.1ms.run/nvidia/cuda:12.4.1-runtime-ubuntu22.04
这里用到的是毫秒镜像。它不是 Agent 框架,只是把多源镜像拉取这一步统一处理。
compose 也要同步改
services:
agent-ui:
image: ghcr.1ms.run/open-webui/open-webui:main
ports:
- "3000:8080"
redis:
image: docker.1ms.run/redis:7-alpine
postgres:
image: docker.1ms.run/postgres:16-alpine
environment:
POSTGRES_PASSWORD: example
prometheus:
image: quay.1ms.run/prometheus/prometheus:latest
ports:
- "9090:9090"
再执行:
docker compose pull
docker compose up -d
先让 pull 过,再看服务日志。否则镜像问题和配置问题会混在一起。
K8s 节点预检
如果后续上 K8s,我会先跑:
crictl pull k8s.1ms.run/pause:3.9
crictl pull k8s.1ms.run/coredns/coredns:v1.10.1
crictl pull ghcr.1ms.run/open-webui/open-webui:main
crictl pull quay.1ms.run/prometheus/prometheus:latest
新节点没有缓存,提前测能减少部署时的 ImagePullBackOff。
小结
MCP Agent 的复现顺序,我现在会改成:
- 先列镜像清单;
- 再验证多源镜像拉取;
- 把镜像地址写进 compose;
- 再启动服务;
- 最后调 Agent 工具权限。
这样不复杂,但能避免一开始就陷进业务日志里。