This commit is contained in:
iammm0
2026-01-28 16:19:56 +08:00
parent f516ff1187
commit 6744263773

View File

@@ -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
"
# 第二步:复制新的配置文件到远程服务器