Ejecutar primer build - Eziuz/Proyecto-POLI-Generador-de-Claves GitHub Wiki

🚀 Ejecutar el Primer Build

Esta guía te mostrará cómo ejecutar tu primer build en el pipeline de Jenkins para el proyecto POLI-Generador-de-Claves y verificar que todo funcione correctamente.

📋 Prerrequisitos

Antes de ejecutar el primer build, asegúrate de tener:

  • ✅ Jenkins instalado y configurado
  • ✅ Pipeline creado según las instrucciones anteriores
  • ✅ Credenciales de Docker Hub configuradas
  • ✅ Repositorio de GitHub conectado
  • ✅ Jenkinsfile presente en el repositorio

🏁 Iniciar el Build Manualmente

Paso 1: Acceder al Dashboard de Jenkins

  1. Abre tu navegador y navega a la URL de Jenkins (típicamente http://localhost:8080 o la dirección IP del servidor)
  2. Inicia sesión con tus credenciales de administrador

Jenkins Dashboard

Paso 2: Localizar el Pipeline

  1. Navega al dashboard principal de Jenkins
  2. Busca el job POLI-Generador-de-Claves en la lista de proyectos
  3. Haz clic en el nombre del proyecto para acceder a su página principal

Localizar Pipeline

Paso 3: Iniciar el Build

  1. Haz clic en el botón "Build Now" (o "Construir ahora") en el menú lateral izquierdo
  2. Confirma la acción si se te solicita

Build Now Button

Paso 4 (Opcional): Especificar Parámetros

Si has configurado el pipeline con parámetros:

  1. Haz clic en "Build with Parameters" en lugar de "Build Now"
  2. Completa los parámetros según sea necesario:
    • VERSION_OVERRIDE: Déjalo en blanco para la primera ejecución
    • BUILD_TYPE: Selecciona normal
    • PUSH_LATEST: Desmarca esta opción para la primera prueba

Build Parameters


📊 Monitorear el Progreso

Paso 5: Ver la Ejecución en Tiempo Real

  1. Observa la barra de progreso que aparece en la sección "Build History"
  2. Haz clic en el número de build (por ejemplo, #1) para ver los detalles
  3. Selecciona "Console Output" para ver los logs en tiempo real

Console Output

Paso 6: Seguir el Progreso por Stages

Verás el progreso a través de los diferentes stages del pipeline:

Started by user admin
Running in Durability level: MAX_SURVIVABILITY
[Pipeline] Start of Pipeline
[Pipeline] node
Running on Jenkins in /var/jenkins_home/workspace/POLI-Generador-de-Claves
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Checkout)
[Pipeline] checkout
...

Visualización de Stages

El pipeline pasará por los siguientes stages:

  1. Checkout: Clona el repositorio
  2. Determine Version: Calcula la versión de la imagen
  3. Build Docker Image: Construye la imagen Docker
  4. Verify Image: Verifica la integridad de la imagen
  5. Push to DockerHub: Publica la imagen en Docker Hub

Pipeline Stages


✅ Verificar Resultados

Paso 7: Comprobar el Estado Final

Una vez completado el build, verifica:

  1. Estado general: Debe mostrar "Success" (verde) si todo salió bien
  2. Logs finales: Revisa los mensajes de éxito al final del log
[Pipeline] stage
[Pipeline] { (Push to DockerHub)
...
✅ Build de desarrollo completado!

Para usar esta versión:
docker pull usuario/generador-claves:1.0.0-build.1
docker run -d -p 3000:3000 usuario/generador-claves:1.0.0-build.1
...
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS

Paso 8: Verificar la Imagen en Docker Hub

  1. Abre tu navegador y ve a Docker Hub
  2. Inicia sesión con tus credenciales
  3. Navega a tu repositorio generador-claves
  4. Verifica que la imagen con la versión correcta esté presente

Docker Hub Repository

Paso 9: Probar la Imagen Localmente

Para confirmar que la imagen funciona:

# Descargar la imagen
docker pull usuario/generador-claves:1.0.0-build.1

# Ejecutar un contenedor
docker run -d -p 3000:3000 --name test-generador usuario/generador-claves:1.0.0-build.1

# Verificar que está funcionando
curl http://localhost:3000

🚨 Troubleshooting

Error: "Could not find credentials"

Síntomas:

ERROR: Could not find credentials entry with ID 'dockerhub-credentials'

Solución:

  1. Ve a "Manage Jenkins" → "Manage Credentials"
  2. Verifica que las credenciales existan con el ID exacto dockerhub-credentials
  3. Si no existen, créalas siguiendo la guía de configuración de credenciales

Error: "Permission denied to Docker daemon"

Síntomas:

Got permission denied while trying to connect to the Docker daemon socket

Solución:

  1. Verifica que el usuario de Jenkins tenga permisos para Docker:
sudo usermod -aG docker jenkins
sudo systemctl restart jenkins
  1. Si usas Docker-in-Docker, verifica la configuración:
docker exec -it jenkins-container bash
docker ps  # Debería funcionar sin errores

Error: "Failed to push image"

Síntomas:

denied: requested access to the resource is denied

Solución:

  1. Verifica tus credenciales de Docker Hub
  2. Asegúrate de que el repositorio exista en Docker Hub
  3. Prueba iniciar sesión manualmente:
docker login -u tu_usuario
# Ingresa tu contraseña cuando se solicite

Error: "Build failed during Docker build"

Síntomas:

The command '/bin/sh -c yarn install' returned a non-zero code: 1

Solución:

  1. Revisa el Dockerfile en busca de errores
  2. Verifica que todas las dependencias estén disponibles
  3. Prueba construir la imagen manualmente:
docker build -t test-image .

📈 Análisis de Resultados

Métricas Importantes

Después de ejecutar el primer build, analiza estas métricas:

Métrica Valor Esperado Qué Revisar si Falla
Tiempo total 3-5 minutos Conexión a internet, tamaño del proyecto
Tamaño de imagen ~150-300MB Optimización del Dockerfile
Tiempo de build 1-3 minutos Cache de Docker, dependencias
Tiempo de push 30s-2min Velocidad de subida, tamaño de imagen

Logs Importantes

Busca estos mensajes clave en los logs:

  1. Versión determinada:
🏷️ Version determined: 1.0.0-build.1
📦 Is release: false
  1. Imagen construida:
Successfully built 3a1b2c3d4e5f
Successfully tagged usuario/generador-claves:1.0.0-build.1
  1. Push exitoso:
The push refers to repository [docker.io/usuario/generador-claves]
1.0.0-build.1: digest: sha256:1a2b3c... size: 1234

🔄 Ciclo de Desarrollo Continuo

Flujo de Trabajo Recomendado

Ahora que has ejecutado tu primer build, sigue este flujo para el desarrollo continuo:

flowchart LR
    A[Desarrollo] --> B[Commit & Push]
    B --> C[Build Manual]
    C --> D[Verificar Imagen]
    D --> E[Probar Aplicación]
    E --> A