diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 4b08f24..2ce8c46 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -4,6 +4,7 @@ on: [push] jobs: deploy: runs-on: ubuntu + timeout-minutes: 30 steps: - name: Deploy using SSH # 使用 Gitea 官方镜像源,加速国内访问 @@ -34,8 +35,12 @@ jobs: # 3. 停止并移除 Docker 容器及镜像 echo -e "\n===== 停止并清理 Docker =====" - # 移除 --rmi all,保留镜像缓存,加快构建速度,同时避免误删基础镜像 - echo $SUDO_PASSWORD | sudo -S docker compose down + # 强制停止并删除容器,忽略错误 + echo $SUDO_PASSWORD | sudo -S docker compose down --remove-orphans 2>/dev/null || true + # 等待容器完全停止 + sleep 5 + # 强制删除可能残留的容器 + echo $SUDO_PASSWORD | sudo -S docker ps -aq --filter "name=scoring" | xargs -r docker rm -f 2>/dev/null || true # 4. 拉取 Git 最新代码 echo -e "\n===== 拉取 Git 代码 =====" @@ -65,6 +70,14 @@ jobs: # 6. 重新启动 Docker 容器 echo -e "\n===== 启动 Docker 容器 =====" - echo $SUDO_PASSWORD | sudo -S docker compose up -d --build + echo $SUDO_PASSWORD | sudo -S docker compose up -d --build --quiet-pull + + # 7. 等待服务启动 + echo -e "\n===== 等待服务启动 =====" + sleep 15 + + # 8. 检查服务状态 + echo -e "\n===== 检查服务状态 =====" + echo $SUDO_PASSWORD | sudo -S docker compose ps echo -e "\n===== 操作完成!====="