Repository navigation
[Bug] 使用官方脚本升级vm2api报错 #628
Description
提交前自查
- 已升级到最新 Release,问题仍存在(或无法升级,已在下方说明原因)
- 已搜索现有 Issues,没有重复
- 已阅读 ISSUE_GUIDE.md,并对贴出的所有内容做了脱敏
问题类型
安装 / 升级 / 部署
1. 使用的版本
v1.3.200
部署方式
一键脚本 install.sh(预构建镜像)
问题描述
执行官方更新脚本报错
[错误] Go slot service refresh failed; VM containers were left untouched, but kin-egress may still be the previous binary
2. 可复现路线
root@v2202610342560537950:~# curl -sSL https://raw.githubusercontent.com/dofastted/vm2api/main/deploy/install.sh | sudo bash -s -- upgrade
==============================================
vm2api
[信息] 当前 1.3.199 → 目标 v1.3.200(linux/amd64)
[信息] 下载部署文件 v1.3.200 → /opt/vm2api
[信息] 保留已有管理台密码
[信息] 本版 changelog
1.3.200 — 2026-10-20
- 官方 OAuth(claude_code):在已运行槽终端里执行
claude auth login,面板弹出槽终端、授权链接在终端复制、授权码由用户粘贴;宿主机不再自造 authorize URL。Cookie 导入与 Setup Token 路径不变。(官方 OAuth 改为槽终端登录 #615) - 槽位种子页默认锁定:需确认解锁后才能改配置,播种前再次确认;时区/语言提供 en、cn、jp 基础选项。时区跟随当前 SOCKS5(空/非手动钉住)时展示出口时区,播种经
timezone_follow_proxy写入;可改固定 IANA 时区或改回跟随。TZ/LANG/LC_ALL 仍不经extra_env覆盖契约键。(feat(web): 种子配置默认锁定 + 空 TZ 跟随 SOCKS5(#612 拆分) #613) - 槽位种子页:
settings.json的 env 行与theme可直接编辑并随播种写入;autoUpdates、grove_enabled只读且播种时固定为false;TZ/LANG/LC_ALL、遥测 kill-switch、Bedrock/Vertex、gateway hint 等同理只读(播种由契约重写)。缺CLAUDE_CODE_ATTRIBUTION_HEADER时默认0。调试上传默认关,独立 query 拉最近 40 条上传,切换开关不重置未保存编辑;Go sidecar 写vms/<id>/run/telemetry-upload.log,面板GET seed-settings?debug=1返回telemetry_log。(feat(seed): 可编辑 env/theme + 调试上传 40 条脱敏(#610 拆分) #611) - 协议页可配置
routing.compatibility.auto_compact_window(100K–1M 或跟随模型);入站在清理 settings 前提取调用方CLAUDE_CODE_AUTO_COMPACT_WINDOW,经内部auto_compact_window字段进入当前 job,清理后的 body 不再携带该 env。(feat(protocol): 保留调用方 auto compact 窗口 #607) - 槽位种子页按当前槽
settings.json列出真实配置;claude.setting可编辑播种;缺失文件返回null、空文件返回空串,不用策略默认冒充槽内文件;遥测开关与 sidecar 进程状态分开展示,保存不因遥测进程刷新失败而 502。(feat(web): 种子页按当前槽 settings.json 显示真实配置 #608) - 集群槽 legacy kin-worker / kin-egress 容器可一次性迁到持久化
/opt/kin-live挂载:旧容器重命名为*-legacy-<timestamp>保留作回滚,替换容器复用原镜像与网络身份;rename 后先从 user-defined 网 disconnect 释放 IP/别名再 create;KVM 已挂/opt/kin-guest/opt/kin-live不再误判 legacy;scripts/migrate-legacy-cluster-slots.mjs与 fleetaction=telemetry同路径;迁移时保留 CapDrop/CapAdd 等 HostConfig,避免 canReuse 后 egress 权限缩水。(feat(vm): migrate legacy containers for service-only Go updates #605) - fleet 遥测刷新在 kin-egress 二进制被替换(含
(deleted)旧进程与脏 pidfile)时,会按 egress 配置扫停全部 helper、等待/proc/<pid>消失后再绑定新二进制;同一 SOCKS 出口的 stop/start 与ensureProxyEgress共用 per-proxy 锁,避免并发 telemetry 互相 SIGTERM。(fix(vm): restart kin-egress after its binary is replaced #604) - 扩展节点直连通道:
PUT /api/panel/cluster/nodes/:id/direct-link在节点上建kin-slot-gate(TLS 1.3,首次启动自签证书,控制面经 SSH 读取并固定指纹;每节点随机令牌),远程槽 kernel / worker 请求改为每次一条直连 TLS 连接,不再全部挤在一条 SSH 长连接里(长连接在零碎流量下拥塞窗口会卡在约 17KB/s,突发请求正文排队数秒)。请求正文随握手后的第一包发出、不等应答。gate 只连槽的两个 socket 且不跟随符号链接;连不上、证书不符或令牌被拒时该节点退回 SSH 30 秒。面板节点详情可启用 / 关闭,节点行显示「直连」/「直连→SSH」。新增 Go 命令kin-slot-gate(npm run build:gate,Release 附件同名)。(feat(cluster): 扩展节点直连通道(kin-slot-gate,TLS),槽位请求不再挤在 SSH 长连接里 #614) - 面板:侧栏「GitHub / 文档」两枚链接不再折行,字体偏宽时「文档」不会逐字竖排,空间不够先缩箭头再省略文字;VM 列表搜索框关闭浏览器自动填充,不再被回填成登录邮箱。(fix(web): 侧栏文档链接不折行;VM 搜索框关闭自动填充 #602)
- 集群页「扩展节点」新增 CPU / 内存 / 容器三列:健康检查(每 30 秒)经同一条 SSH 连接读节点
/proc和 cgroup,口径同本机宿主列;容器 = 节点上全部 Docker 容器内存合计(扣除 inactive_file,同docker stats)。修复本机宿主列 CPU 最高只显示 10%(Math.min(100, …×1000)/10写错上限)。链路列不再折行。(feat(cluster): 扩展节点显示 CPU / 内存 / 容器内存;修本机 CPU 上限 10% #603) - 集群槽无需重建 VM 即可更新 Go 槽位服务(kin-worker / kin-egress):持久化
slot-bin挂载推送二进制,fleetaction=telemetry热更新遥测与 egress。(feat(vm): update Go slot services without VM rebuild #600) - Codex 入站在平台探测前支持 CPR 式
routing.codex.model_mappings精确模型映射;默认codex-auto-review→gpt-6-luna(清空该键时回退gpt-6.1-sol)。日志保留requested_model/upstream_model;非法或非 GPT 目标 400,不 hop Anthropic。(feat(codex): CPR-style model_mappings for codex-auto-review (#526) #598,[Bug] Codex无法自动审批 #526) - 保留路径不再给没有可用签名的 thinking 补
signature: "":缺失、空、短于 24、dummy 的删掉;签名可用的留,空正文也留。这一支里的redacted_thinking不看 data 和签名,原样留;不走保留路径时仍按原规则删。5.5 的非保留路径仍接受短的非 dummy 签名。没有按账号归属过滤签名。(fix(protocol): 保留路径删除无可用签名的 thinking,协议页默认可返回摘要 #592) - 协议页新增「thinking 显示」,
routing.compatibility.thinking_display默认summarized。调用方打开 thinking 却要求隐藏(omitted、updates,或默认隐藏的模型上没写 display)时,出站改成summarized;显式passthrough保留调用方的值。已保存的routing.json不写这个键也按 summarized 生效。(fix(protocol): 保留路径删除无可用签名的 thinking,协议页默认可返回摘要 #592) - Claude kernel / CLI 依赖固定到不可变快照
payload-2026.10.19-kernel-cli(kin-kernel + cli-node);Codex kernel 与其余原生产物保持不变。(chore(payload): 接入 2026-10-19 的 kernel 与 cli-node #594,docs(changelog): 未发布补 #594 payload-2026.10.19-kernel-cli #597) - 安全:web 依赖
source-map-js固定 1.2.2(CVE-2026-93749)。(fix: upgrade source-map-js to 1.2.2 (CVE-2026-93749) #599)
已部署机升级:更新 Node 控制面与 web/dist 后重启;数据库迁移 039_cluster_node_direct_links 启动时自动执行。Claude kernel / cli-node 改为快照 payload-2026.10.19-kernel-cli,需一键更新或 wrap-cli/sync(keep)刷新(#594)。集群槽:#600 槽布局 2→3(kin.vm.layout=3),旧布局槽需 recreate 一次才挂上 slot-bin,或用 scripts/migrate-legacy-cluster-slots.mjs 或 fleet action=telemetry 迁到 /opt/kin-live,容器 ID 会变,旧容器保留为 *-legacy-<timestamp> 作回滚(#605)。扩展节点直连为可选:控制面 bin/ 需放入新附件 kin-slot-gate(控制面经 SSH 下发到节点),面板节点详情启用并放行防火墙端口,默认仍走 SSH(#614)。thinking_display 默认 summarized(#592);官方 OAuth 改为槽终端内 claude auth login(#615);可配 auto_compact_window(#607)。不要覆盖 routing.json、vms/、data/、.env。
- 官方 OAuth(claude_code):在已运行槽终端里执行
claude auth login,面板弹出槽终端、授权链接在终端复制、授权码由用户粘贴;宿主机不再自造 authorize URL。Cookie 导入与 Setup Token 路径不变。(官方 OAuth 改为槽终端登录 #615) - 槽位种子页默认锁定:需确认解锁后才能改配置,播种前再次确认;时区/语言提供 en、cn、jp 基础选项。时区跟随当前 SOCKS5(空/非手动钉住)时展示出口时区,播种经
timezone_follow_proxy写入;可改固定 IANA 时区或改回跟随。TZ/LANG/LC_ALL 仍不经extra_env覆盖契约键。(feat(web): 种子配置默认锁定 + 空 TZ 跟随 SOCKS5(#612 拆分) #613) - 槽位种子页:
settings.json的 env 行与theme可直接编辑并随播种写入;autoUpdates、grove_enabled只读且播种时固定为false;TZ/LANG/LC_ALL、遥测 kill-switch、Bedrock/Vertex、gateway hint 等同理只读(播种由契约重写)。缺CLAUDE_CODE_ATTRIBUTION_HEADER时默认0。调试上传默认关,独立 query 拉最近 40 条上传,切换开关不重置未保存编辑;Go sidecar 写vms/<id>/run/telemetry-upload.log,面板GET seed-settings?debug=1返回telemetry_log。(feat(seed): 可编辑 env/theme + 调试上传 40 条脱敏(#610 拆分) #611) - 协议页可配置
routing.compatibility.auto_compact_window(100K–1M 或跟随模型);入站在清理 settings 前提取调用方CLAUDE_CODE_AUTO_COMPACT_WINDOW,经内部auto_compact_window字段进入当前 job,清理后的 body 不再携带该 env。(feat(protocol): 保留调用方 auto compact 窗口 #607) - 槽位种子页按当前槽
settings.json列出真实配置;claude.setting可编辑播种;缺失文件返回null、空文件返回空串,不用策略默认冒充槽内文件;遥测开关与 sidecar 进程状态分开展示,保存不因遥测进程刷新失败而 502。(feat(web): 种子页按当前槽 settings.json 显示真实配置 #608) - 集群槽 legacy kin-worker / kin-egress 容器可一次性迁到持久化
/opt/kin-live挂载:旧容器重命名为*-legacy-<timestamp>保留作回滚,替换容器复用原镜像与网络身份;rename 后先从 user-defined 网 disconnect 释放 IP/别名再 create;KVM 已挂/opt/kin-guest/opt/kin-live不再误判 legacy;scripts/migrate-legacy-cluster-slots.mjs与 fleetaction=telemetry同路径;迁移时保留 CapDrop/CapAdd 等 HostConfig,避免 canReuse 后 egress 权限缩水。(feat(vm): migrate legacy containers for service-only Go updates #605) - fleet 遥测刷新在 kin-egress 二进制被替换(含
(deleted)旧进程与脏 pidfile)时,会按 egress 配置扫停全部 helper、等待/proc/<pid>消失后再绑定新二进制;同一 SOCKS 出口的 stop/start 与ensureProxyEgress共用 per-proxy 锁,避免并发 telemetry 互相 SIGTERM。(fix(vm): restart kin-egress after its binary is replaced #604) - 扩展节点直连通道:
PUT /api/panel/cluster/nodes/:id/direct-link在节点上建kin-slot-gate(TLS 1.3,首次启动自签证书,控制面经 SSH 读取并固定指纹;每节点随机令牌),远程槽 kernel / worker 请求改为每次一条直连 TLS 连接,不再全部挤在一条 SSH 长连接里(长连接在零碎流量下拥塞窗口会卡在约 17KB/s,突发请求正文排队数秒)。请求正文随握手后的第一包发出、不等应答。gate 只连槽的两个 socket 且不跟随符号链接;连不上、证书不符或令牌被拒时该节点退回 SSH 30 秒。面板节点详情可启用 / 关闭,节点行显示「直连」/「直连→SSH」。新增 Go 命令kin-slot-gate(npm run build:gate,Release 附件同名)。(feat(cluster): 扩展节点直连通道(kin-slot-gate,TLS),槽位请求不再挤在 SSH 长连接里 #614) - 面板:侧栏「GitHub / 文档」两枚链接不再折行,字体偏宽时「文档」不会逐字竖排,空间不够先缩箭头再省略文字;VM 列表搜索框关闭浏览器自动填充,不再被回填成登录邮箱。(fix(web): 侧栏文档链接不折行;VM 搜索框关闭自动填充 #602)
- 集群页「扩展节点」新增 CPU / 内存 / 容器三列:健康检查(每 30 秒)经同一条 SSH 连接读节点
/proc和 cgroup,口径同本机宿主列;容器 = 节点上全部 Docker 容器内存合计(扣除 inactive_file,同docker stats)。修复本机宿主列 CPU 最高只显示 10%(Math.min(100, …×1000)/10写错上限)。链路列不再折行。(feat(cluster): 扩展节点显示 CPU / 内存 / 容器内存;修本机 CPU 上限 10% #603) - 集群槽无需重建 VM 即可更新 Go 槽位服务(kin-worker / kin-egress):持久化
slot-bin挂载推送二进制,fleetaction=telemetry热更新遥测与 egress。(feat(vm): update Go slot services without VM rebuild #600) - Codex 入站在平台探测前支持 CPR 式
routing.codex.model_mappings精确模型映射;默认codex-auto-review→gpt-6-luna(清空该键时回退gpt-6.1-sol)。日志保留requested_model/upstream_model;非法或非 GPT 目标 400,不 hop Anthropic。(feat(codex): CPR-style model_mappings for codex-auto-review (#526) #598,[Bug] Codex无法自动审批 #526) - 保留路径不再给没有可用签名的 thinking 补
signature: "":缺失、空、短于 24、dummy 的删掉;签名可用的留,空正文也留。这一支里的redacted_thinking不看 data 和签名,原样留;不走保留路径时仍按原规则删。5.5 的非保留路径仍接受短的非 dummy 签名。没有按账号归属过滤签名。(fix(protocol): 保留路径删除无可用签名的 thinking,协议页默认可返回摘要 #592) - 协议页新增「thinking 显示」,
routing.compatibility.thinking_display默认summarized。调用方打开 thinking 却要求隐藏(omitted、updates,或默认隐藏的模型上没写 display)时,出站改成summarized;显式passthrough保留调用方的值。已保存的routing.json不写这个键也按 summarized 生效。(fix(protocol): 保留路径删除无可用签名的 thinking,协议页默认可返回摘要 #592) - Claude kernel / CLI 依赖固定到不可变快照
payload-2026.10.19-kernel-cli(kin-kernel + cli-node);Codex kernel 与其余原生产物保持不变。(chore(payload): 接入 2026-10-19 的 kernel 与 cli-node #594,docs(changelog): 未发布补 #594 payload-2026.10.19-kernel-cli #597) - 安全:web 依赖
source-map-js固定 1.2.2(CVE-2026-93749)。(fix: upgrade source-map-js to 1.2.2 (CVE-2026-93749) #599)
已部署机升级:更新 Node 控制面与 web/dist 后重启;数据库迁移 039_cluster_node_direct_links 启动时自动执行。Claude kernel / cli-node 改为快照 payload-2026.10.19-kernel-cli,需一键更新或 wrap-cli/sync(keep)刷新(#594)。集群槽:#600 槽布局 2→3(kin.vm.layout=3),旧布局槽需 recreate 一次才挂上 slot-bin,或用 scripts/migrate-legacy-cluster-slots.mjs 或 fleet action=telemetry 迁到 /opt/kin-live,容器 ID 会变,旧容器保留为 *-legacy-<timestamp> 作回滚(#605)。扩展节点直连为可选:控制面 bin/ 需放入新附件 kin-slot-gate(控制面经 SSH 下发到节点),面板节点详情启用并放行防火墙端口,默认仍走 SSH(#614)。thinking_display 默认 summarized(#592);官方 OAuth 改为槽终端内 claude auth login(#615);可配 auto_compact_window(#607)。不要覆盖 routing.json、vms/、data/、.env。
[信息] docker compose pull && up -d(拉预构建镜像,本机不构建)
[+] pull 24/24
✔ Image ghcr.io/dofastted/vm2api:v1.3.200 Pulled 4.7s
[+] up 1/1
✔ Container vm2api Started 1.0s
[信息] 等待控制面 http://127.0.0.1:8787/health
[成功] 探活通过
(node:482) ExperimentalWarning: SQLite is an experimental feature and might change at any time
(Use node --trace-warnings ... to show where the warning was created)
{"action":"telemetry","concurrency":4,"total":15,"ok_count":3,"failed_count":12,"items":[{"id":"vm-01","ok":false,"action":"telemetry","runtime_kind":"docker","telemetry":{"ok":false,"action":"restart_failed","error":"Command failed: docker exec kin-01 sh -c pkill -TERM -x kin-worker 2>/dev/null || true\nError response from daemon: No such container: kin-01\n"},"error":"Command failed: docker exec kin-01 sh -c pkill -TERM -x kin-worker 2>/dev/null || true\nError response from daemon: No such container: kin-01\n","code":"telemetry_update_failed"},{"id":"vm-02","ok":false,"action":"telemetry","runtime_kind":"docker","telemetry":{"ok":false,"action":"restart_failed","error":"Command failed: docker exec kin-02 sh -c pkill -TERM -x kin-worker 2>/dev/null || true\nError response from daemon: No such container: kin-02\n"},"error":"Command failed: docker exec kin-02 sh -c pkill -TERM -x kin-worker 2>/dev/null || true\nError response from daemon: No such container: kin-02\n","code":"telemetry_update_failed"},{"id":"vm-03","ok":false,"action":"telemetry","runtime_kind":"docker","telemetry":{"ok":false,"action":"restart_failed","error":"Command failed: docker exec kin-03 sh -c pkill -TERM -x kin-worker 2>/dev/null || true\nError response from daemon: No such container: kin-03\n"},"error":"Command failed: docker exec kin-03 sh -c pkill -TERM -x kin-worker 2>/dev/null || true\nError response from daemon: No such container: kin-03\n","code":"telemetry_update_failed"},{"id":"vm-04","ok":false,"action":"telemetry","runtime_kind":"docker","telemetry":{"ok":false,"action":"restart_failed","error":"Command failed: docker exec kin-04 sh -c pkill -TERM -x kin-worker 2>/dev/null || true\nError response from daemon: No such container: kin-04\n"},"error":"Command failed: docker exec kin-04 sh -c pkill -TERM -x kin-worker 2>/dev/null || true\nError response from daemon: No such container: kin-04\n","code":"telemetry_update_failed"},{"id":"vm-05","ok":false,"action":"telemetry","runtime_kind":"docker","telemetry":{"ok":false,"action":"restart_failed","error":"Command failed: docker exec kin-05 sh -c pkill -TERM -x kin-worker 2>/dev/null || true\nError response from daemon: No such container: kin-05\n"},"error":"Command failed: docker exec kin-05 sh -c pkill -TERM -x kin-worker 2>/dev/null || true\nError response from daemon: No such container: kin-05\n","code":"telemetry_update_failed"},{"id":"vm-06","ok":false,"action":"telemetry","runtime_kind":"docker","telemetry":{"ok":false,"action":"restart_failed","error":"Command failed: docker exec kin-06 sh -c pkill -TERM -x kin-worker 2>/dev/null || true\nError response from daemon: No such container: kin-06\n"},"error":"Command failed: docker exec kin-06 sh -c pkill -TERM -x kin-worker 2>/dev/null || true\nError response from daemon: No such container: kin-06\n","code":"telemetry_update_failed"},{"id":"vm-07","ok":false,"action":"telemetry","runtime_kind":"docker","telemetry":{"ok":false,"action":"restart_failed","error":"Command failed: docker exec kin-07 sh -c pkill -TERM -x kin-worker 2>/dev/null || true\nError response from daemon: No such container: kin-07\n"},"error":"Command failed: docker exec kin-07 sh -c pkill -TERM -x kin-worker 2>/dev/null || true\nError response from daemon: No such container: kin-07\n","code":"telemetry_update_failed"},{"id":"vm-08","ok":false,"action":"telemetry","runtime_kind":"docker","telemetry":{"ok":false,"action":"restart_failed","error":"Command failed: docker exec kin-08 sh -c pkill -TERM -x kin-worker 2>/dev/null || true\nError response from daemon: No such container: kin-08\n"},"error":"Command failed: docker exec kin-08 sh -c pkill -TERM -x kin-worker 2>/dev/null || true\nError response from daemon: No such container: kin-08\n","code":"telemetry_update_failed"},{"id":"vm-09","ok":false,"action":"telemetry","runtime_kind":"docker","telemetry":{"ok":false,"action":"restart_failed","error":"Command failed: docker exec kin-09 sh -c pkill -TERM -x kin-worker 2>/dev/null || true\nError response from daemon: No such container: kin-09\n"},"error":"Command failed: docker exec kin-09 sh -c pkill -TERM -x kin-worker 2>/dev/null || true\nError response from daemon: No such container: kin-09\n","code":"telemetry_update_failed"},{"id":"vm-10","ok":false,"action":"telemetry","runtime_kind":"docker","telemetry":{"ok":false,"action":"restart_failed","error":"Command failed: docker exec kin-10 sh -c pkill -TERM -x kin-worker 2>/dev/null || true\nError response from daemon: No such container: kin-10\n"},"error":"Command failed: docker exec kin-10 sh -c pkill -TERM -x kin-worker 2>/dev/null || true\nError response from daemon: No such container: kin-10\n","code":"telemetry_update_failed"},{"id":"vm-11","ok":false,"action":"telemetry","runtime_kind":"docker","telemetry":{"ok":false,"action":"restart_failed","error":"Command failed: docker exec kin-11 sh -c pkill -TERM -x kin-worker 2>/dev/null || true\nError response from daemon: No such container: kin-11\n"},"error":"Command failed: docker exec kin-11 sh -c pkill -TERM -x kin-worker 2>/dev/null || true\nError response from daemon: No such container: kin-11\n","code":"telemetry_update_failed"},{"id":"vm-12","ok":false,"action":"telemetry","runtime_kind":"docker","telemetry":{"ok":false,"action":"restart_failed","error":"Command failed: docker exec kin-12 sh -c pkill -TERM -x kin-worker 2>/dev/null || true\nError response from daemon: No such container: kin-12\n"},"error":"Command failed: docker exec kin-12 sh -c pkill -TERM -x kin-worker 2>/dev/null || true\nError response from daemon: No such container: kin-12\n","code":"telemetry_update_failed"},{"id":"vm-13","ok":true,"action":"telemetry","runtime_kind":"docker","telemetry":{"ok":true,"action":"restarted","egress":"restarted"}},{"id":"vm-14","ok":true,"action":"telemetry","runtime_kind":"docker","telemetry":{"ok":true,"action":"restarted","egress":"restarted"}},{"id":"vm-15","ok":true,"action":"telemetry","runtime_kind":"docker","telemetry":{"ok":true,"action":"restarted","egress":"restarted"}}]}
[错误] Go slot service refresh failed; VM containers were left untouched, but kin-egress may still be the previous binary
root@v2202610342560537950:# docker ps#
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d5e74926995a ghcr.io/dofastted/vm2api:v1.3.200 "/usr/local/bin/vm2a…" 23 minutes ago Up 23 minutes vm2api
d5074a27d42d eceasy/cli-proxy-api:latest "./CLIProxyAPI" 43 hours ago Up 43 hours 0.0.0.0:1455->1455/tcp, [::]:1455->1455/tcp, 0.0.0.0:8085->8085/tcp, [::]:8085->8085/tcp, 0.0.0.0:8317->8317/tcp, [::]:8317->8317/tcp, 0.0.0.0:11451->11451/tcp, [::]:11451->11451/tcp, 0.0.0.0:51121->51121/tcp, [::]:51121->51121/tcp, 0.0.0.0:54545->54545/tcp, [::]:54545->54545/tcp cli-proxy-api
3bf3ec1231c0 055c389ff14b "sleep infinity" 3 days ago Up 2 days kin-15
cc77f298512e 055c389ff14b "sleep infinity" 3 days ago Up 2 days kin-14
e7686272756d 055c389ff14b "sleep infinity" 3 days ago Up 2 days kin-13
root@v2202610342560537950:
升级报错,但是不影响使用,我有15个VM
期望结果 / 实际结果
期望更新成功
实际报错,但是不影响使用
复现频率
必现
3. 运行环境(VPS / 宿主机)
- 云厂商 / 地区:Netcup 美东地区
- 规格(CPU / 内存 / 磁盘):8核16G
- 系统与内核:Debian
- 虚拟化(KVM 母机 / OpenVZ / LXC / 物理机),/dev/kvm 是否存在:不存在
- Docker 版本:最新版
- 槽位运行时(Docker 容器 / KVM-QEMU):Docker容器
- VM 数量 / 是否多 VPS 集群:单机
代理 / 出口
- 出口方式(独立 SOCKS5 / 本机直连 local / 其他):
- 代理类型(住宅 / ISP 静态 / 机房;动态或静态):
- 出口地区:
- 是否多个 VM 或其他程序共用同一出口:
- 是否配置自定义 DoH:
- 宿主机是否设置 HTTP(S)_PROXY / 透明代理:
账号与客户端
- 账号类型(Claude Pro / Max / Team / Enterprise、ChatGPT Codex):
- 凭证方式(OAuth / setup-token / sessionKey / API Key):
- 客户端与入口(Claude Code、Cursor…;/v1/messages、/v1/chat/completions、/v1/responses):
4.1 VM 创建 / 槽位日志
4.2 请求日志
5. 源码定位(可选)
No response
已尝试的操作 / 补充
No response
Activity