BCards/deploy/cleanup-standalone.sh
Ricardo Carneiro 644dbf0974
Some checks failed
BCards Deployment Pipeline / Run Tests (push) Successful in 2s
BCards Deployment Pipeline / PR Validation (push) Has been skipped
BCards Deployment Pipeline / Build and Push Image (push) Successful in 7m38s
BCards Deployment Pipeline / Deploy to Release Swarm (ARM) (push) Has been skipped
BCards Deployment Pipeline / Deploy to Production (ARM - OCI) (push) Failing after 11s
BCards Deployment Pipeline / Cleanup Old Resources (push) Has been skipped
BCards Deployment Pipeline / Deployment Summary (push) Successful in 0s
fix: deploy no swarm
2025-10-27 21:06:27 -03:00

89 lines
2.8 KiB
Bash

#!/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