diff --git a/cleanup.sh b/cleanup.sh new file mode 100644 index 0000000..d60bf66 --- /dev/null +++ b/cleanup.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +# 清理脚本 - 清除微信小程序后端服务部署的所有资源 + +echo "开始清理部署的资源..." + +# 进入项目目录 +cd /opt/project_app + +# 停止并移除所有相关容器 +echo "停止并移除容器..." +docker-compose down -v + +# 清理未使用的镜像 +echo "清理Docker镜像..." +docker image prune -f + +# 清理未使用的卷 +echo "清理Docker卷..." +docker volume prune -f + +# 清理未使用的网络 +echo "清理Docker网络..." +docker network prune -f + +# 清理临时文件 +echo "清理临时文件..." +rm -rf /tmp/project_app_temp 2>/dev/null || true + +# 清理构建缓存 +echo "清理Docker构建缓存..." +docker builder prune -f + +echo "清理完成!所有部署的资源已清除。" diff --git a/deploy.sh b/deploy.sh index 706e6d3..787736e 100644 --- a/deploy.sh +++ b/deploy.sh @@ -24,8 +24,14 @@ fi # 更新Docker Buildx到最新版本 echo "更新Docker Buildx..." - docker buildx install 2>/dev/null || true - docker buildx create --use 2>/dev/null || true + # 卸载旧版本 + docker buildx uninstall 2>/dev/null || true + # 安装最新版本 + docker buildx install + # 创建并使用默认构建器 + docker buildx create --name mybuilder --use 2>/dev/null || true + # 重启Docker服务以应用更改 + systemctl restart docker 2>/dev/null || true echo "Docker工具检查完成" @@ -41,10 +47,8 @@ fi # 目录不为空,创建临时目录克隆后复制文件 echo "目标目录已存在且不为空,使用临时目录克隆代码..." git clone http://8.137.125.67:4000/Swt29/Project_app.git /tmp/project_app_temp - # 复制.git文件夹和docker相关文件 - cp -r /tmp/project_app_temp/.git /opt/project_app/ - cp -r /tmp/project_app_temp/docker-compose.yml /opt/project_app/ 2>/dev/null || true - cp -r /tmp/project_app_temp/Dockerfile /opt/project_app/ 2>/dev/null || true + # 复制.git文件夹和所有文件 + cp -r /tmp/project_app_temp/. /opt/project_app/ # 清理临时目录 rm -rf /tmp/project_app_temp else @@ -55,15 +59,18 @@ fi else # 如果目录已存在.git文件夹,则更新代码 cd /opt/project_app - git pull origin BOSS + # 使用fast-forward方式更新,避免分支冲突 + git fetch origin BOSS + git merge --ff-only FETCH_HEAD || { + echo "分支冲突,重置本地分支到远程最新版本..." + git reset --hard origin/BOSS + } fi - # 检查docker-compose.yml文件是否存在 - if [ ! -f docker-compose.yml ]; then - echo "警告: docker-compose.yml文件不存在,正在从仓库重新拉取..." - git fetch origin BOSS - git checkout origin/BOSS -- docker-compose.yml Dockerfile - fi + # 确保有必要的配置文件 + echo "确保配置文件存在..." + git fetch origin BOSS + git checkout origin/BOSS -- docker-compose.yml Dockerfile 2>/dev/null || true # 检查.env文件是否存在 echo "检查环境变量配置..." diff --git a/update.sh b/update.sh index 002d50e..3214120 100644 --- a/update.sh +++ b/update.sh @@ -8,8 +8,12 @@ echo "开始更新微信小程序后端服务..." cd /opt/project_app # 拉取最新代码 -echo "拉取最新代码..." -git pull origin BOSS + echo "拉取最新代码..." + git fetch origin BOSS + git merge --ff-only FETCH_HEAD || { + echo "分支冲突,重置本地分支到远程最新版本..." + git reset --hard origin/BOSS + } # 构建新的Docker镜像 echo "构建新的Docker镜像..."