From 6744263773022fba73e1637aef46f5600515d3b4 Mon Sep 17 00:00:00 2001 From: iammm0 Date: Wed, 28 Jan 2026 16:19:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/docker-build-deploy.yml | 27 ++++++++++++++--------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/.github/workflows/docker-build-deploy.yml b/.github/workflows/docker-build-deploy.yml index e725165..b48e601 100644 --- a/.github/workflows/docker-build-deploy.yml +++ b/.github/workflows/docker-build-deploy.yml @@ -123,19 +123,26 @@ jobs: ssh -p $SSH_PORT $SSH_USER@$SSH_HOST \ "mkdir -p $COMPOSE_DIR/api" - # 第一步:先停止并删除旧容器(使用服务器上现有的 docker-compose.yml) + # 第一步:强制停止并删除所有旧容器 echo "停止并删除旧容器..." ssh -p $SSH_PORT $SSH_USER@$SSH_HOST " - cd $COMPOSE_DIR/api 2>/dev/null || exit 0 - if [ -f '$COMPOSE_FILE' ]; then - echo '使用旧配置停止容器...' - docker-compose -f '$COMPOSE_FILE' down --remove-orphans || true - fi + # 先尝试使用 docker-compose down + cd $COMPOSE_DIR/api 2>/dev/null && docker-compose -f '$COMPOSE_FILE' down --remove-orphans 2>/dev/null || true - # 清理可能残留的容器 - echo '清理残留容器...' - docker stop life-echo-api-prod life-echo-celery-worker life-echo-postgres life-echo-redis 2>/dev/null || true - docker rm -f life-echo-api-prod life-echo-celery-worker life-echo-postgres life-echo-redis 2>/dev/null || true + # 强制停止并删除所有 life-echo 相关容器(按名称匹配) + echo '强制清理所有 life-echo 容器...' + docker ps -a --filter 'name=life-echo' --format '{{.ID}}' | xargs -r docker rm -f 2>/dev/null || true + + # 再次确保指定容器被删除 + echo '确保指定容器被删除...' + docker rm -f life-echo-api-prod life-echo-celery-worker life-echo-postgres life-echo-redis life-echo-celery-beat life-echo-flower 2>/dev/null || true + + # 等待容器完全停止 + sleep 3 + + # 验证容器已删除 + echo '验证容器状态...' + docker ps -a --filter 'name=life-echo' || true " # 第二步:复制新的配置文件到远程服务器