dify二次开发部署服务器
最后面就是参考文章得到思路和流程
1. 启动本地docker,配置镜像源
1.本地的docker配置这个镜像源
2. 服务管理面板1Panel也是配置这个镜像源
{"builder": {"gc": {"defaultKeepStorage": "20GB","enabled": true}},"experimental": false,"registry-mirrors": ["https://docker.1ms.run","https://hub.rat.dev","https://docker.1panel.live","https://hub.rat.dev","https://proxy.1panel.live","https://ghcr.nju.edu.cn","https://docker.registry.cyou","https://dockercf.jsdelivr.fyi","https://docker.rainbond.cc","https://registry.cn-shenzhen.aliyuncs.com","https://dockertest.jsdelivr.fyi","https://mirror.aliyuncs.com","https://mirror.baidubce.com","https://docker.mirrors.ustc.edu.cn","https://docker.mirrors.sjtug.sjtu.edu.cn","https://mirror.iscas.ac.cn","https://docker.nju.edu.cn","https://docker.m.daocloud.io","https://dockerproxy.com","https://docker.jsdelivr.fyi","https://docker-cf.registry.cyou"]
}


2. 拉取代码到本地后,进行修改页面,并重新打包模块镜像,上传到服务器上
为什么是本地生成镜像,由于服务器比较小,处理不了,在线上编译成新镜像会导致服务器卡死,要重启服务器,所以需要重新编译
- 修改 Web 前端页面后,进行重新编译成镜像,dify中的前端页面是存在到web文件夹里的
# 进入web文件夹
cd web
# 构建新镜像
# 示例 docker build -t dify-web-custom 。
docker build -t 自己取名镜像名称 .

2. 构建镜像完成后,将镜像转换成tar文件并保存到本地
# 示例 docker save -o dify-api-custom.tar dify-web-custom
docker save -o 自己取转换后的文件名称.tar 镜像名称
-
tar文件会在你当前输入命令的路径下,这里是web,那么就是在web文件夹内

-
上传tar文件到服务器上面的dify项目上

3. 在根目录导入tar文件里面的镜像,并修改配置文件
导入方法1:点击这个方式导入tar文件镜像

导入方法1:也可以使用命令导入
# 导入镜像,示例 docker load -i dify-api-custom.tar
docker load -i 上传的tar文件名称.tar


2 . 修改docker-compose.yaml文件,指定web服务使用的是我们上传的镜像

修改web指定的镜像,修改后ctrl+s 保存然后在退出

最后在启动程序
# 停止程序命令
docker-compose down
# 启动程序命令
docker-compose up -d

最后访问即可

4.如果后期又修改了web文件中的页面
- 如果后面又修改了web文件中的页面,那么先还是在本地先编译成镜像,在将镜像转换成tar文件
- 然后在1panel管理面板先停止程序
- 接着删除之前的tar文件,在上传现在的tar文件
- 停止了程序后容器里面的原来导入的镜像会变成未引用,删除之前导入的镜像
- 再到容器重新导入tar文件里面的镜像
- 最后在回到docker文件中修改yaml文件中的名称,如果导入的镜像名称和之前一样那就不用修改
- 最后在启动项目
- 暂停程序

- 删除tar文件,并重新上传tar文件

- 删除之前导入的镜像,重新导入新镜像




- 最后在重新启动,并访问即可

解决时参考的文章链接:
1. 在服务器重新构建镜像会卡死,这个链接交的是在本地构建镜像,然后在转成tar文件,
最后将tar文件上传到服务器上的文章地址: https://github.com/lmk123/blog/issues/1092.这个链接是教你如何修改dify代码后,在重新部署,他3.3目录告诉你的直接在服务器上重新构建镜像
但是呢,如果服务器太小,会导致服务器卡死,所以参照第一个链接本地构建镜像转换成tar文件,在上传到
服务器上,接着在参照这个第二个链接修改yaml文件,并重新部署文章地址: https://jishuzhan.net/article/19030512874097991703. 二次开发部署流程到本地构建镜像并转成tar文件--------->上传tar文件到服务器------------->将tar导入到服务器docker中的镜像---------> 修改docker中yaml配置文件,指定刚刚导入的镜像名称------->最后启动
