最近,有点时间,发现自己在使用 FastGPT 时无法看到deepseek-r1的推理过程,原版的又经常抽风。经过一番研究后,升级 FastGPT 到最新版可以解决这个问题。
升级步骤概述
修改 Docker-Compose 文件
需要更新 docker-compose.yml
文件中的 tag 版本号,从 v4.8.16 改为 v4.8.20-fix2。
services:
fastgpt:
image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.8.20-fix2
更新镜像并重启服务
接下来,按照以下命令来更新容器并且让其重新启动:
docker-compose down
docker-compose pull
docker-compose up -d
docker-compose down
会停止并移除当前运行的容器。docker-compose pull
下载最新的镜像。docker-compose up -d
后台启动新版本的服务。
发送升级脚本
官方还需要发送一个 POST 请求来初始化新的配置。
curl --location --request POST 'https://{{host}}/api/admin/initv4820' \
--header 'rootkey: {{root_key}}' \
--header 'Content-Type: application/json'
获取 host 和 root_key
- 如果是在局域网环境下,并且没有配置域名,只是用的http,那么
host
可以直接用 IP 地址和端口号表示。例如我自己的机器是 10.0.1.22,在3000端口运行,因此请求的 URL 就应该是:http://10.0.1.22:3000/api/admin/initv4820
root_key
是用于验证身份的一个关键参数。可以通过以下命令获取:
cat docker-compose.yml | grep ROOT_KEY
这行命令会从配置文件中提取出正确的 root key 值,方便我们使用。更新后的示例如下:
curl --location --request POST 'http://10.0.1.22:3000/api/admin/initv4820' \
--header 'rootkey: your_root_key_here' \
--header 'Content-Type: application/json'
遇到的问题及解决方法
文件权限问题导致服务无法启动
此次升级后重启 fastgpt 时遇到了一个问题:fastgpt 完全无法正常启动了。在查看日志之后发现了一个错误信息:
Init system error Error: EACCES: permission denied,
open '/app/data/config.json' at readFileSync (node:fs:448:20) at O (/app/projects/app/.next/server/chunks/59571.js:1:12292)
这个问题的根源在于 config.json
文件在宿主机上的权限被设置成了 600,导致进程无法读取该文件。解决方法很简单,进入到对应的主目录,调整文件权限即可:
chmod 644 config.json
修改完后重新启动 fastgpt,一切恢复正常了。