置顶我自用指令(哈哈 方便我更新自己复制)
sh
# 1 备份docker compose数据
cd /data/project/dify/docker
cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak
# 2 暂存变更&拉取代码
git checkout main
git stash
git pull origin main
# 3 冲突解决(ymal文件)
vim /data/project/dify/docker/docker-compose.yaml
# 4 冲突解决后ADD
git add /data/project/dify/docker/docker-compose.yaml
git commit -m "Resolve merge conflict after stash pop"
# 5 停止服务&备份数据
docker compose down
tar -cvf volumes-$(date +%s).tgz volumes
# 6 更新拉取并启动
docker compose up -d
docker-compose.yaml
文件(可选)bashcd /data/project/dify/docker
cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak
在拉取最新代码之前,确保 Git 用户信息已配置:
bashgit config --global user.email "you@example.com"
git config --global user.name "Your Name"
将 you@example.com
替换为你的邮箱,Your Name
替换为你的名字。
bashgit checkout main
如果本地有未提交的修改,可以暂存这些修改以避免冲突:
bashgit stash
拉取远程仓库的最新代码:
bashgit pull origin main
如果之前暂存了修改,恢复这些修改:
bashgit stash pop
如果恢复时出现冲突,手动解决冲突:
bash# 例如 Auto-merging docker/docker-compose.yaml
# CONFLICT (content): Merge conflict in docker/docker-compose.yaml
# 表示需要解决docker-compose.yaml中的冲突,无法自动合并
vim /data/project/dify/docker/docker-compose.yaml
# 查找冲突标记(通常是<<<<<<<,=======,>>>>>>> 根据业务需求,手动解决冲突,保留或修改相应的代码
然后提交:
bash# 根据你自己的目录 我的是 /data/project/dify/docker/
git add /data/project/dify/docker/docker-compose.yaml
git commit -m "Resolve merge conflict after stash pop"
然后再次还原前面的暂存: git stash pop
检查:git status
在 docker
目录中执行以下命令停止服务:
bashdocker compose down
备份 volumes
目录中的数据:
bashtar -cvf volumes-$(date +%s).tgz volumes
启动升级后的服务:
bashdocker compose up -d