Browse Source

修复部署脚本:Git分支冲突处理和Docker Buildx版本问题

pull/2/head
SwTt29 2 months ago
parent
commit
a63539c6d2
  1. 34
      cleanup.sh
  2. 33
      deploy.sh
  3. 8
      update.sh

34
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 "清理完成!所有部署的资源已清除。"

33
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 "检查环境变量配置..."

8
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镜像..."

Loading…
Cancel
Save