SuperAPI AI 工具集

deploy

部署与运维

查看项目

更新于 10-16 05:06

技能介绍

用途:以 Kamal 安全、可预测地部署应用,把正确版本发布到正确主机,并在执行前理解各命令作用、管理部署锁避免并发冲突。

主要能力:kamal deploy 会依次登录镜像仓库、构建并推送镜像、拉取到服务器、确保 kamal-proxy 在 80/443 端口运行、启动与当前 Git 版本哈希一致的新容器、待 GET /up 返回 200 OK 后切换流量、停止旧容器并清理无用镜像与已停止容器。若 /up 始终不返回 200,则不会切换流量。

使用方式:部署前先阅读 config/deploy.yml、config/deploy.<destination>.yml 与 .kamal/secrets,并提交改动(默认部署当前检出的 Git 版本,只构建已提交文件)。标准流程为 git status 后执行 kamal deploy。可用 --roles、--hosts(支持 * 通配)、--primary、--version、-d/--destination 缩小目标;kamal redeploy 跳过引导、启动 proxy、清理与仓库登录,但需先成功执行过一次 kamal deploy;--skip-push 跳过构建推送,--skip-hooks 跳过钩子。首次部署新服务器应使用 kamal setup。

部署锁:并发不安全的命令会自动加锁(主服务器 .kamal 目录下的原子目录)。kamal lock status 查看,kamal lock acquire -m 手动加锁,kamal lock release 释放。锁被占用时命令默认立即失败,可用 --lock-wait 轮询等待,配合 --lock-wait-timeout(默认 900 秒)与 --lock-wait-interval(默认 15 秒);手动加的锁不会被等待。

限制:redeploy 只能在 deploy 成功后使用;--version 针对指定版本而非检出哈希,回滚应使用 rollback 技能;钩子、构建、回滚、运行中容器管理分别见 hooks、build、rollback、app 技能。其余选项细节暂未提供。