#!/bin/bash # Script para limpar containers standalone do BCards # Deve ser executado DEPOIS que o Swarm estiver rodando corretamente set -e echo "🔍 Verificando containers standalone do BCards..." # Lista de possíveis nomes de containers standalone STANDALONE_CONTAINERS=( "bcards-prod" "bcards-release" "bcards-app" ) # Verifica se o Swarm está rodando echo "✅ Verificando status do Docker Swarm..." if ! docker info | grep -q "Swarm: active"; then echo "❌ ERRO: Docker Swarm não está ativo neste servidor!" echo "Este script só deve ser executado em servidores do Swarm." exit 1 fi # Verifica se o serviço do Swarm está rodando echo "✅ Verificando serviço bcards_bcards-app no Swarm..." if ! docker service ls | grep -q "bcards_bcards-app"; then echo "❌ ERRO: Serviço bcards_bcards-app não encontrado no Swarm!" echo "Certifique-se de que o deploy do Swarm foi feito antes de executar este script." exit 1 fi # Mostra status do serviço Swarm echo "" echo "📊 Status atual do serviço Swarm:" docker service ls --filter name=bcards_bcards-app echo "" docker service ps bcards_bcards-app --filter "desired-state=running" | head -10 echo "" # Verifica se há containers standalone rodando FOUND_CONTAINERS=false for container_name in "${STANDALONE_CONTAINERS[@]}"; do if docker ps -a --format '{{.Names}}' | grep -q "^${container_name}$"; then FOUND_CONTAINERS=true break fi done if [ "$FOUND_CONTAINERS" = false ]; then echo "✅ Nenhum container standalone encontrado. Sistema está OK!" exit 0 fi # Lista containers encontrados echo "⚠️ Containers standalone encontrados:" for container_name in "${STANDALONE_CONTAINERS[@]}"; do if docker ps -a --format '{{.Names}}' | grep -q "^${container_name}$"; then echo " - $container_name" docker ps -a --filter "name=^${container_name}$" --format "table {{.ID}}\t{{.Names}}\t{{.Status}}\t{{.Ports}}" fi done echo "" # Pergunta confirmação read -p "🗑️ Deseja remover estes containers standalone? (sim/não): " -r echo if [[ ! $REPLY =~ ^[Ss][Ii][Mm]$ ]]; then echo "❌ Operação cancelada pelo usuário." exit 0 fi # Remove os containers echo "🧹 Removendo containers standalone..." for container_name in "${STANDALONE_CONTAINERS[@]}"; do if docker ps -a --format '{{.Names}}' | grep -q "^${container_name}$"; then echo " Parando e removendo: $container_name" docker stop "$container_name" 2>/dev/null || true docker rm "$container_name" 2>/dev/null || true fi done echo "" echo "✅ Limpeza concluída!" echo "" echo "📊 Status final do serviço Swarm:" docker service ls --filter name=bcards_bcards-app echo "" docker service ps bcards_bcards-app --filter "desired-state=running" | head -10