Skip to content

[Bug] 使用官方脚本升级vm2api报错 #628

Open

Description

@lihengcn

提交前自查

  • 已升级到最新 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 与 fleet action=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 挂载推送二进制,fleet action=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 与 fleet action=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 挂载推送二进制,fleet action=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

Image

期望结果 / 实际结果

期望更新成功
实际报错,但是不影响使用

复现频率

必现

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions