123 lines
3.5 KiB
Bash
123 lines
3.5 KiB
Bash
#!/bin/bash
|
|
|
|
# ================================================================
|
|
# Script de Prueba y Reconstrucción para TubeScript API
|
|
# ================================================================
|
|
|
|
set -e
|
|
|
|
echo "🔧 TubeScript API - Prueba y Reconstrucción"
|
|
echo "=============================================="
|
|
echo ""
|
|
|
|
# Colores
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# 1. Detener todo
|
|
echo "🛑 Paso 1: Deteniendo servicios actuales..."
|
|
docker-compose down 2>/dev/null || docker stop $(docker ps -aq) 2>/dev/null || true
|
|
docker rm $(docker ps -aq) 2>/dev/null || true
|
|
echo -e "${GREEN}✅ Servicios detenidos${NC}"
|
|
echo ""
|
|
|
|
# 2. Limpiar imágenes viejas
|
|
echo "🧹 Paso 2: Limpiando imágenes antiguas..."
|
|
docker rmi tubescript-api 2>/dev/null || true
|
|
echo -e "${GREEN}✅ Limpieza completada${NC}"
|
|
echo ""
|
|
|
|
# 3. Reconstruir
|
|
echo "🏗️ Paso 3: Reconstruyendo imagen..."
|
|
echo " (Esto puede tomar 3-5 minutos)"
|
|
docker-compose build --no-cache tubescript-api
|
|
if [ $? -eq 0 ]; then
|
|
echo -e "${GREEN}✅ Build completado exitosamente${NC}"
|
|
else
|
|
echo -e "${RED}❌ Error en el build${NC}"
|
|
exit 1
|
|
fi
|
|
echo ""
|
|
|
|
# 4. Iniciar servicio
|
|
echo "🚀 Paso 4: Iniciando servicio..."
|
|
docker-compose up -d tubescript-api
|
|
if [ $? -eq 0 ]; then
|
|
echo -e "${GREEN}✅ Servicio iniciado${NC}"
|
|
else
|
|
echo -e "${RED}❌ Error al iniciar${NC}"
|
|
exit 1
|
|
fi
|
|
echo ""
|
|
|
|
# 5. Esperar inicialización
|
|
echo "⏳ Paso 5: Esperando inicialización (15 segundos)..."
|
|
for i in {15..1}; do
|
|
echo -n "$i... "
|
|
sleep 1
|
|
done
|
|
echo ""
|
|
echo ""
|
|
|
|
# 6. Verificar que está corriendo
|
|
echo "🔍 Paso 6: Verificando estado..."
|
|
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" | grep tubescript_api
|
|
if [ $? -eq 0 ]; then
|
|
echo -e "${GREEN}✅ Contenedor corriendo${NC}"
|
|
else
|
|
echo -e "${RED}❌ Contenedor NO está corriendo${NC}"
|
|
echo "Ver logs:"
|
|
docker logs tubescript_api 2>&1 | tail -50
|
|
exit 1
|
|
fi
|
|
echo ""
|
|
|
|
# 7. Probar endpoint de health
|
|
echo "🏥 Paso 7: Probando endpoint de health..."
|
|
curl -s http://localhost:8080/docs > /dev/null 2>&1
|
|
if [ $? -eq 0 ]; then
|
|
echo -e "${GREEN}✅ API respondiendo${NC}"
|
|
else
|
|
echo -e "${YELLOW}⚠️ API aún no responde (puede necesitar más tiempo)${NC}"
|
|
fi
|
|
echo ""
|
|
|
|
# 8. Probar el endpoint problemático
|
|
echo "🧪 Paso 8: Probando endpoint de transcripción..."
|
|
echo " Video ID: 6hini9Xz_fc"
|
|
echo ""
|
|
|
|
RESPONSE=$(curl -s -w "\n%{http_code}" "http://localhost:8080/transcript/6hini9Xz_fc?lang=es" 2>&1)
|
|
HTTP_CODE=$(echo "$RESPONSE" | tail -n1)
|
|
BODY=$(echo "$RESPONSE" | head -n-1)
|
|
|
|
if [ "$HTTP_CODE" = "200" ]; then
|
|
echo -e "${GREEN}✅ ¡ÉXITO! El endpoint funciona correctamente${NC}"
|
|
echo ""
|
|
echo "Respuesta:"
|
|
echo "$BODY" | python3 -m json.tool 2>/dev/null || echo "$BODY"
|
|
elif [ "$HTTP_CODE" = "400" ]; then
|
|
echo -e "${RED}❌ Error 400 - El problema persiste${NC}"
|
|
echo ""
|
|
echo "Respuesta de error:"
|
|
echo "$BODY" | python3 -m json.tool 2>/dev/null || echo "$BODY"
|
|
echo ""
|
|
echo "📋 Ver logs del contenedor:"
|
|
echo " docker logs tubescript_api"
|
|
else
|
|
echo -e "${YELLOW}⚠️ HTTP $HTTP_CODE - Respuesta inesperada${NC}"
|
|
echo ""
|
|
echo "$BODY"
|
|
fi
|
|
|
|
echo ""
|
|
echo "=============================================="
|
|
echo "🔍 Comandos útiles:"
|
|
echo " Ver logs: docker logs -f tubescript_api"
|
|
echo " Entrar: docker exec -it tubescript_api bash"
|
|
echo " Detener: docker-compose down"
|
|
echo " Reiniciar: docker-compose restart tubescript-api"
|
|
echo "=============================================="
|