NextChat 如何修改左上角的“Build your own AI”

以下这是我的一直不成功的操作步骤!

进入容器查找包含 “Build your own AI” 的文件内容:

root@www:~/chatgpt-next-web# docker exec -it epic_hopper /bin/sh
/app # ls
node_modules  package.json  public  server.js
/app # grep -lr "Build your own AI" .
./.next/server/app/page.js
./.next/static/chunks/app/page-b6d44fcc822483cd.js

退出容器后,先将 Docker 容器中的文件复制到本地(因为直接挂载会导致本地和容器内的目录都为空,因此想着先将文件复制到本地,以确保本地目录有内容):
docker cp epic_hopper:/app/.next/. next/

然后删除并重新创建容器,并在创建容器时将本地目录挂载到容器中:

docker run -d -p 3000:3000 \
   -v /root/chatgpt-next-web/next:/app/.next \
   ...

接着修改本地 next 目录下包含 “Build your own AI” 内容的文件。修改后

root@www:~/chatgpt-next-web/next# ls
BUILD_ID                 app-path-routes-manifest.json  package.json           prerender-manifest.json       required-server-files.json  server
app-build-manifest.json  build-manifest.json            prerender-manifest.js  react-loadable-manifest.json  routes-manifest.json        static
root@www:~/chatgpt-next-web/next# grep -rl "Build your own AI" .

确认文件已经不再包含 “Build your own AI” 的内容。但修改并未反映到页面上,即使已经:

1.	重启 Docker 容器
2.	重启 Nginx
3.	更换浏览器

页面上的那几个字还是没有改变。

本人新人,这问题困扰我多日,求助各位前辈,这修改操作是哪儿没到位啊?

5 个赞

docker 的一个作用就是“现场恢复”,你进docker里修改的内容,不会持久化的,重启 docker 就没了,得修改源码构建镜像

2 个赞

试试拉代码下来修改后 docker build

5 个赞

改 merg… 里的不要改 diff 的除非你要创建多个源。然后如果是环境变量需要先 stop 掉容器再保存不然保存的同时就自动复原,且改完后需要重启 docker 重置环境变量再 start 容器。

2 个赞

可是用 docker -v 挂载到本地了啊

1 个赞

谢Neo,就是说这种修改docker容器里面内容的做法压根不可行是不

1 个赞

不是环境变量,就是那两个js文件

你那个 js 就是默认模型的文件,直接改就行改完清下浏览器缓冲立马生效。你可以先改下默认模型或左上那个图标颜色看看生不生效(看看有没改对文件。。)

我就是 docker 的直接改静态文件,重新打包的话我机子只有 512m 会卡死只能直接改小文件。重启 docker 容器不会丢失,但你改的是容器不是镜像重新 run 一个新容器的话就是镜像原版未修改的。

头大了。看来问题出在其他哪个地方。

我使用 grep -rl "Build your own" . 找到了 ./app/components/sidebar.tsx 文件,进入文件后,将其中的 “Build your own AI” 替换为新的内容。

接着,我运行以下命令来重新构建镜像:
docker build -t nextchat .

构建成功后,使用以下命令启动了新的容器:

docker run -d -p 3000:3000 \
  ... \
  -e HIDE_USER_API_KEY=1 \
  nextchat

检查镜像和容器运行情况:

root@www:~/chatgpt-next-web# docker image ls
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
nextchat     latest    bbab29b49ada   2 minutes ago   195MB
root@www:~/chatgpt-next-web# docker ps
CONTAINER ID   IMAGE      COMMAND                  CREATED          STATUS          PORTS                                       NAMES
3785b1e5d1c2   nextchat   "docker-entrypoint.s…"   24 seconds ago   Up 23 seconds   0.0.0.0:3000->3000/tcp, :::3000->3000/tcp   vigilant_swanson

可以确认镜像重建成功,并且容器已正常运行。

随后,进入容器内部,确认文件中已经没有 “Build your own AI” 了:

root@www:~/chatgpt-next-web# docker exec -it vigilant_swanson /bin/sh
/app # grep -rl "Build your own AI" .

虽然确认文件修改已生效,但奇怪的是,网页上仍然显示 “Build your own AI”。我尝试了以下操作:

•	重启 Nginx
•	清除 Cloudflare 缓存
•	更换浏览器/清除浏览器缓存

但问题依然没有解决。

那么可能是pwa 缓存导致,换个浏览器试试

@Qiner 谢回复,刚按照neo说的docker build了都不行,看来问题是出在其他的地方了。能帮看看可能是啥原因么,见上个回复。

有更换浏览器的

这样?

对对,就是这种,我这怎么改也改不动 :rofl:

直接git到本地,修改,然后docker build
我之前就这样改的

已经这样改了,步骤如下:NextChat 如何修改左上角的“Build your own AI” - #10,来自 codydoby 这还是不奏效能帮看看可能啥原因了不

docker rmi 之前的镜像没?rmi后再build

操作已完成,但问题仍然存在。

首先,删除了镜像和容器:

root@www:~/chatgpt-next-web# docker ps
CONTAINER ID   IMAGE      COMMAND                  CREATED         STATUS         PORTS                                       NAMES
0a4029a1de16   nextchat   "docker-entrypoint.s…"   6 minutes ago   Up 6 minutes   0.0.0.0:3000->3000/tcp, :::3000->3000/tcp   sharp_albattani

通过以下命令停止并删除运行中的容器:

root@www:~/chatgpt-next-web# docker rm -f sharp_albattani
sharp_albattani

接着,列出所有镜像并将其删除:

root@www:~/chatgpt-next-web# docker image ls
REPOSITORY   TAG         IMAGE ID       CREATED         SIZE
nextchat     latest      5209cbb94b38   7 minutes ago   195MB
node         18-alpine   f48cc5826852   3 months ago    128MB
root@www:~/chatgpt-next-web# docker rmi 5209cbb94b38
root@www:~/chatgpt-next-web# docker rmi f48cc5826852

接下来,清理了所有构建缓存:

root@www:~/chatgpt-next-web# docker builder prune
WARNING! This will remove all dangling build cache. Are you sure you want to continue? [y/N] y
ID                                              RECLAIMABLE     SIZE            LAST ACCESSED
psflpdjrflhnk0bmv0dba8btk*                      true            25.58MB         9 minutes ago
...
Total:  4.465GB

为了进一步清理 Docker 系统中的无用资源,执行了以下命令:

root@www:~/chatgpt-next-web# docker system prune -a
WARNING! This will remove:
  - all stopped containers
  - all networks not used by at least one container
  - all images without at least one container associated to them
  - all build cache

Are you sure you want to continue? [y/N] y

接下来,使用 grep 再次检查代码库,确保不存在 “Build your own AI” 的字符串:
root@www:~/chatgpt-next-web# grep -rl "Build your own AI"

确认内容无误后,重新拉取了所需的 Node.js 镜像:
root@www:~/chatgpt-next-web# docker pull node:18-alpine

然后重新构建项目镜像:
root@www:~/chatgpt-next-web/ChatGPT-Next-Web# docker build -t nextchat .

镜像构建成功,最后通过以下命令创建了新的容器:

docker run -d -p 3000:3000 \
   ...
   nextchat

最后,重启了 Nginx,清除 Cloudflare 缓存,并清理了浏览器缓存。然而,网页上的那些字依然没有消失…

这就奇怪了,我之前是fork一份,修改了几个文件后 docker build就好了,我还记得有修改的内容

回答增加模型名称

: ${message.model ? {message.model} | ` : ""}{message.date.toLocaleString()}`}

不行你就git后本地部署,不使用docker了:
yarn install && yarn build && yarn start