From 84385488ae900069de7554905d2436aa35a3a34e Mon Sep 17 00:00:00 2001 From: jeremygan2021 Date: Tue, 17 Feb 2026 11:44:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E5=88=86=E9=94=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/deploy.yaml | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 5023175..7d3b1ce 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -23,21 +23,24 @@ jobs: exit 1 } - # 2. 停止并移除 Docker 容器 - echo -e "\n===== 停止 Docker 容器 =====" - echo $SUDO_PASSWORD | sudo -S docker compose down - - # 3. 删除 Docker 镜像 - echo -e "\n===== 删除 Docker 镜像 =====" + # 2. 停止并移除 Docker 容器及镜像 + echo -e "\n===== 停止并清理 Docker =====" + # 合并停止容器和删除镜像的操作,避免重复执行导致"already in progress"错误 echo $SUDO_PASSWORD | sudo -S docker compose down --rmi all - # 4. 拉取 Git 最新代码 + # 3. 拉取 Git 最新代码 echo -e "\n===== 拉取 Git 代码 =====" - git pull || { - echo "警告:Git pull 失败(可能是本地有未提交的修改),脚本继续执行..." - } + # 尝试拉取,如果失败则强制重置,增强鲁棒性 + if ! git pull; then + echo "警告:Git pull 失败,尝试强制同步远程代码..." + git fetch --all + # 获取当前分支名并重置 + CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD) + git reset --hard origin/$CURRENT_BRANCH + git pull + fi - # 5. 重新启动 Docker 容器 + # 4. 重新启动 Docker 容器 echo -e "\n===== 启动 Docker 容器 =====" echo $SUDO_PASSWORD | sudo -S docker compose up -d