Bienvenido a tu espacio para automatizar compilaciones pruebas y despliegues con Jenkins y Docker. Aquí descubrirás cómo implementar CI CD para mantener el desarrollo rápido fiable y eficiente.
CI CD explicado: CI Integración Continua integra automáticamente los cambios en un repositorio compartido y ejecuta compilaciones y pruebas para detectar errores temprano. CD Entrega Continua mantiene el código en un estado listo para liberación con despliegues automatizados a staging o producción.
Qué es un build job En Jenkins un build job es un conjunto de instrucciones para automatizar tareas desde compilar código ejecutar pruebas empaquetar hasta desplegar en cualquier entorno.
Qué es un Freestyle Project Un Freestyle Project en Jenkins es la forma más accesible para construir y probar código ejecutar comandos Docker desplegar aplicaciones y encadenar varios pasos de automatización.
Retos de hoy Task 1 Crear un agente para tu aplicación dockerizada Crear un Freestyle Project en Jenkins Añadir un paso de build que ejecute docker build para crear la imagen y docker run para lanzar el contenedor
Task 2 Crear un proyecto en Jenkins para ejecutar docker compose up -d y arrancar múltiples contenedores desde tu proyecto Añadir un paso de limpieza con docker compose down para detener y eliminar contenedores
Prerequisitos Confirmar que Jenkins está activo Abre la URL https://tu-host:8080 Desbloquea Jenkins con el contenido de sudo cat /var/lib/jenkins/secrets/initialAdminPassword Crea el usuario admin e instala los plugins sugeridos si es la primera vez
Dar acceso de Docker al usuario de Jenkins Ejecuta sudo usermod -aG docker jenkins y sudo systemctl restart jenkins Verifica con sudo -u jenkins -H sh -c docker version && docker ps
Instalar Git y Compose en el agente o host Ejecuta sudo apt-get update y sudo apt-get install -y git Si docker compose no está presente instala docker compose plugin con sudo apt-get install -y docker-compose-plugin
Crear o preparar un agente Si Jenkins y Docker comparten la misma máquina puedes usar el Built in Node Ve a Manage Jenkins Nodes Built in Node Configure Añade una etiqueta por ejemplo docker y establece el numero de ejecutores en 1 Guarda Si tienes un host Docker separado añádelo como agente SSH y asegúrate de que Docker está instalado allí
Task 1 Freestyle job para build y run Preparar el repositorio Asegúrate de que tu repo contiene un Dockerfile en la raiz por ejemplo my-app Dockerfile src ...
Crear el job Jenkins New Item Freestyle project nombra app-build-run OK En General marca Restrict where this project can be run y usa la etiqueta docker En Source Code Management selecciona Git y añade la URL del repo En Build Triggers configura Build periodically con el cron H * * * * para ejecutar cada hora
Paso de build Añade un Execute shell con un script similar en una sola linea set -e; APP_NAME=myapp; IMAGE=${APP_NAME}:${BUILD_NUMBER}; PORT=8080; echo [INFO] Building image ${IMAGE}; docker build -t ${IMAGE} .; echo [INFO] Stopping previous container if any; docker rm -f ${APP_NAME} 2>/dev/null || true; echo [INFO] Running new container; docker run -d --name ${APP_NAME} -p ${PORT}:${PORT} ${IMAGE}; echo [INFO] Container status:; docker ps --filter name=${APP_NAME}
Guarda y ejecuta Build Now Prueba la aplicación en https://tu-host:8080 o en el puerto mapeado
Task 2 Freestyle job para docker compose up -d y limpieza Asegura que tu repo incluye docker-compose.yml con los servicios necesarios por ejemplo un servicio web que construye desde . y expone 8080 y un servicio db con image postgres:16
Crear el job Jenkins New Item Freestyle project nombra compose-up OK Restringe a la etiqueta docker Configura Git con la URL de tu repo Opcionalmente añade un trigger Build periodically H/30 * * * *
Build step Si dispones de docker compose usa un Execute shell con set -e; FILE=docker-compose.yml; echo [INFO] Pull build y start en modo detached; docker compose -f ${FILE} up -d --build; echo [INFO] Current stack:; docker compose -f ${FILE} ps
Si solo tienes el binario antiguo usa docker-compose -f docker-compose.yml up -d --build y docker-compose -f docker-compose.yml ps
Cleanup para que siempre se ejecute incluso si falla el build usa un script con trampa set -e; FILE=docker-compose.yml; cleanup(){ echo [CLEANUP] Bringing stack down; docker compose -f ${FILE} down --volumes --remove-orphans; }; trap cleanup EXIT; docker compose -f ${FILE} up -d --build; docker compose -f ${FILE} ps; # aqui puedes añadir tus pruebas la limpieza se ejecutara en EXIT
Si quieres que la pila permanezca activa para pruebas manuales omite down aquí y crea un job compose-down con el comando docker compose -f docker-compose.yml down --volumes --remove-orphans
Repositorios privados Añade credenciales en Manage Jenkins Credentials System Global Add Credentials Elige Username with password o SSH Username with private key y referencia esas credenciales en la configuración Git del job
Verificacion final Añade un Execute shell al final con echo [VERIFY] Hitting health endpoint; curl -fsS https://localhost:8080/ || (echo App not responding && exit 1)
Consejos ejecuta ambos jobs revisa Console Output para confirmar cada etapa y ajusta puertos y nombres segun tu aplicación
Sobre Q2BSTUDIO Q2BSTUDIO es una empresa de desarrollo de software especializada en aplicaciones a medida y software a medida. Ofrecemos soluciones integrales en inteligencia artificial y ia para empresas, agentes IA implementacion de power bi y servicios inteligencia de negocio. Nuestra experiencia incluye ciberseguridad, servicios cloud aws y azure y consultoria para integrar agentes IA en procesos de negocio. Trabajamos proyectos desde prototipos hasta despliegues a produccion garantizando buenas practicas de seguridad y escalabilidad.
Palabras clave aplicables aplicaciones a medida software a medida inteligencia artificial ciberseguridad servicios cloud aws y azure servicios inteligencia de negocio ia para empresas agentes IA power bi
Si necesitas apoyo profesional Q2BSTUDIO puede ayudarte a diseñar pipelines CI CD optimizados crear jobs de Jenkins seguros y desplegar arquitecturas basadas en Docker y docker compose integrando inteligencia artificial y analitica con Power BI para maximizar el valor de tus datos.