关于 rivet-deploy-image
指导 Agent 使用 Docker 和 Rivet 部署操作,将镜像部署到 Rivet 集群,涵盖构建、上传与逐步发布,无需 Rivet CLI。
主要功能
- 01构建并测量 Docker 镜像
- 02登记镜像构建
- 03通过预签名 URL 上传
- 04逐步推进发布直至完成
- 05使用构建 ID 重试发布
适用场景
- 01将镜像部署到指定 Rivet 集群
- 02无需重建即可重试发布
- 03报告部署端点和构建 ID
MCP 相关
该技能通过 `execute` 工具调用 Rivet 操作,例如 `rivet.deploy.prepare` 和 `rivet.deploy.rollout`。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ rivet-dev/ skills --skill rivet-deploy-image安装后在 Claude Code 中输入/rivet-deploy-image确认已加载。
附带文件references/rollout.md
详细介绍
向 Rivet 集群部署映像
部署包括本地构建、一次上传,以及通过 execute 工具运行两次 Code Mode 操作。需要 Docker 和 shell,不需要 Rivet CLI 或任何其他登录方式。
开始之前
- 确认当前会话可以部署。如果
search没有列出rivet.deploy.prepare,说明当前会话是只读的,或已固定到某个项目或命名空间,因此无法从这里执行部署。请说明这一点,不要重试。 - 选择集群。在
execute中运行return (await rivet.cloud.v2.clusters.list()).items;,然后使用要部署到的集群的cluster字段,该字段就是集群名称。如果连接已固定到某个集群,rivet.context()会报告该集群,且以下所有调用都不需要提供cluster。
步骤
-
在 shell 中构建映像并测量大小。平台必须是
linux/amd64。docker build --platform linux/amd64 -t app . docker image save app -o image.tar wc -c < image.tar # content_length openssl md5 -binary image.tar | base64 # content_md5tarball 必须不超过 5 GiB。请测量将要上传的确切文件,因为只要任一值不匹配,构建验证就会失败。
-
注册构建。
return await rivet.deploy.prepare({ cluster: "my-cluster", image: "app:latest", content_length: 48213504, content_md5: "1B2M2Y8AsgTpgAmY7PhCfg==", });content_length是数字,不是字符串。若 tarball 名称不是image.tar,请传入file。保留返回的build_id。 -
在 shell 中原样运行返回的
upload命令。这是一条针对预签名 URL 的 curl 命令,该 URL 仅对这个 tarball 有效,直到expires_at到期,因此不携带 Rivet 凭据。 -
执行部署,并重复调用,直到
done为true。return await rivet.deploy.rollout({ cluster: "my-cluster", build_id: "<build_id>" });每次调用都会推进一个步骤并立即返回,因此当
done为false时,请再次调用。每个步骤、错误以及回滚方法请参见references/rollout.md。 -
将最终结果中的
build_id和endpoints告知用户。之后回滚时需要使用build_id。
规则
- 切勿为了重试部署而重新构建或重新上传。使用相同的
build_id再次调用rivet.deploy.rollout。 - 整个部署过程都使用
rivet.deploy.*。不要手动操作rivet.cloud.v2.builds.*或rivet.cloud.v2.runnerPools.upsert,因为 upsert 会整体替换集群的设置,并丢弃其允许列表。 - 不要猜测
cluster、region或pool名称。请先列出它们。