From a63539c6d27f55a717a2ef15322eb63b2eeae287 Mon Sep 17 00:00:00 2001 From: SwTt29 <2055018491@qq.com> Date: Tue, 30 Dec 2025 10:38:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=83=A8=E7=BD=B2=E8=84=9A?= =?UTF-8?q?=E6=9C=AC=EF=BC=9AGit=E5=88=86=E6=94=AF=E5=86=B2=E7=AA=81?= =?UTF-8?q?=E5=A4=84=E7=90=86=E5=92=8CDocker=20Buildx=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cleanup.sh | 34 ++++++++++++++++++++++++++++++++++ deploy.sh | 33 ++++++++++++++++++++------------- update.sh | 8 ++++++-- 3 files changed, 60 insertions(+), 15 deletions(-) create mode 100644 cleanup.sh 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镜像..."