One API 如何升级版本:Docker 一键换镜像到 Watchtower 自动更新的完整指南

发布时间:2026/9/1 14:37:49
One API 如何升级版本:Docker 一键换镜像到 Watchtower 自动更新的完整指南 One API 如何升级版本Docker 一键换镜像到 Watchtower 自动更新的完整指南【免费下载链接】one-apiLLM API 管理 分发系统支持 OpenAI、Azure、Anthropic Claude、Google Gemini、DeepSeek、字节豆包、ChatGLM、文心一言、讯飞星火、通义千问、360 智脑、腾讯混元等主流模型统一 API 适配可用于 key 管理与二次分发。单可执行文件提供 Docker 镜像一键部署开箱即用。LLM API management key redistribution system, unifying multiple providers under a single API. Single binary, Docker-ready, with an English UI.项目地址: https://gitcode.com/GitHub_Trending/on/one-apiOne API 是一个 LLM API 管理与分发系统把 OpenAI、Azure、Claude、DeepSeek 等渠道统一成 OpenAI 格式接口。它的版本升级并不复杂Docker 部署下只要拉取新镜像、重建容器即可数据挂在卷上就不会丢。本文给出从最快手动操作到无人值守自动更新的路径并讲清楚数据要备份到哪一层。 最快升级路径一条命令换掉 Docker 镜像先说结论只要你是 Docker 部署升级就是拉新镜像 重建容器这一件事。容器本身可抛弃状态全在挂载卷里重建后与无升级前无异。Docker Compose 升级命令仓库自带的 docker-compose.yml 包含 one-api、MySQL、Redis 三个服务升级只需两行docker-compose pull docker-compose up -ddocker-compose pull拉取最新镜像up -d发现镜像变化后会重建容器并切换。之后用docker-compose ps确认状态为 Up 即可。Docker Run 重建容器命令如果当初是用单条docker run拉起的同样先拉镜像再移除旧容器重新运行。注意 run 参数要和原部署保持一致原本带了SQL_DSN、SESSION_SECRET等就要原样带上docker pull justsong/one-api docker stop one-api docker rm one-api docker run --name one-api -d --restart always -p 3000:3000 \ -e TZAsia/Shanghai -v /home/ubuntu/data/one-api:/data justsong/one-api-v挂载的宿主机路径必须与首次部署时一致否则新容器看不到旧数据。换镜像只要几秒真正的风险在数据侧动手前先确认该备份什么。️ 升级不丢数据挂载卷与自动数据库调整One API 自身的状态文件都在容器内/data目录compose 部署对应./data/oneapi包括默认的 SQLite 库one-api.db日志则按--log-dir参数落到独立目录compose 中为./logs。升级前备份清单对象说明/data挂载目录含 one-api.db渠道、令牌、用户数据都在这里环境变量记录.env或 compose 文件含SQL_DSN、SESSION_SECRET等数据库快照MySQL 部署时执行一次mysqldump导出最常见的升级变灾难是用了 SQLite 默认配置却没挂卷容器一重建数据全部清零。如果你检查后发现/data没有挂载先补上挂载并恢复备份再谈升级。数据库结构要手动改吗一般不需要。系统初始化时会自动调整表结构无需手工执行迁移脚本个别版本若涉及数据库手工处理会在更新日志中明确说明。升级后如果出现数据库报错多数是外部库连接参数没跟上核对SQL_DSN即可。数据边界确认之后就可以聊无人值守了。 无人值守升级Watchtower 自动更新命令不想每次惦记升级README.md 给了一条现成的更新命令docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower -cRWatchtower 是一个监听镜像变化的容器。跑起这条命令后它会自动检测justsong/one-api镜像是否发布了新版本有更新就拉取并重启容器整轮升级无人参与。有两个前提要满足服务使用latest标签镜像、数据卷挂载正确。所以建议先用上一节的手动方式完整升级一次、确认一切正常再交给 Watchtower。Watchtower 只负责镜像层容器重建后能否正常服务仍依赖数据层第一次自动更新后建议多看一眼日志。可执行文件部署的手动替换步骤裸机、面板或不方便装 Docker 的环境按停进程 → 换二进制 → 起新进程的节奏走。有 Go 与 Node 工具链的话可以自行构建先git clone https://gitcode.com/GitHub_Trending/on/one-api获取源码在web/default内执行npm install和npm run build构建前端再回到根目录执行go mod download与go build -ldflags -s -w -o one-api。不想编译的话直接取官方发布页提供的预编译二进制替换旧文件即可。替换完成后启动./one-api --port 3000 --log-dir ./logs--port缺省就是 3000--log-dir指定日志目录--version可随时确认当前版本。配置都来自环境变量与命令行参数保持启动命令与升级前一致新版本起来后行为就和原来一样。二进制换好了还差最后一步确认新版本真的在服务。 升级后验证与高频问题速查最简单的验证是浏览器打开http://localhost:3000登录后检查渠道、令牌数据是否完好。更机械化的方式就是 docker-compose.yml 里内置健康检查用的那招——请求/api/status看返回里success是否为truewget -q -O - http://localhost:3000/api/status现象常见原因处理重启后渠道、用户全没了SQLite 数据没挂卷随容器重建丢失补挂载卷并从备份恢复页面打不开提示端口被占旧容器未删净或宿主机已有服务占用 3000docker ps排查或更换宿主机端口日志出现数据库初始化错误SQL_DSN与新容器环境不匹配核对.env/ compose 文件另提醒一句初始账号是root/123456如果一直没改过趁这次升级之后立刻改掉。升级完成后的下一步稳定跑起来之后值得顺带做两件事一是设置THEME环境变量切换 Web 主题可选default、berry、air界面与实现都在 web/ 目录下二是利用系统访问令牌调用管理接口把拉镜像 → 重建 → 验证写进定时脚本比依赖 Watchtower 更可控。全部参数与接口的定义见 docs/API.md镜像的构建过程则可参考 Dockerfile。【免费下载链接】one-apiLLM API 管理 分发系统支持 OpenAI、Azure、Anthropic Claude、Google Gemini、DeepSeek、字节豆包、ChatGLM、文心一言、讯飞星火、通义千问、360 智脑、腾讯混元等主流模型统一 API 适配可用于 key 管理与二次分发。单可执行文件提供 Docker 镜像一键部署开箱即用。LLM API management key redistribution system, unifying multiple providers under a single API. Single binary, Docker-ready, with an English UI.项目地址: https://gitcode.com/GitHub_Trending/on/one-api创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考