Día 27 Declarative Pipeline de Jenkins con Docker
Introducción En este artículo explicamos paso a paso cómo integrar Jenkins y Docker dentro de pipelines declarativos. Verás dos enfoques principales uno basado en comandos shell ejecutados dentro del pipeline y otro usando la sintaxis Docker del DSL de Jenkins. También incluimos recomendaciones operativas y próximos pasos para producción. Además presentamos a Q2BSTUDIO empresa de desarrollo de software con experiencia en aplicaciones a medida software a medida inteligencia artificial ciberseguridad servicios cloud aws y azure servicios inteligencia de negocio ia para empresas agentes IA y power bi orientada a crear soluciones a medida y seguras para tu negocio.
Tarea 01 Jenkins Declarative Pipeline usando sh En este enfoque ejecutamos comandos Docker directamente con la instrucción sh dentro del Jenkinsfile. Pre requisitos importantes son que el servidor Jenkins tenga Docker instalado y operativo verificar con docker --version que el usuario de Jenkins tenga permisos para ejecutar Docker ya sea formando parte del grupo docker o usando sudo y que el repositorio contenga un Dockerfile válido.
Ejemplo Jenkinsfile usando sh pipeline { agent any stages { stage(Build Docker Image) { steps { sh docker build -t myapp:latest . } } stage(Run Container) { steps { sh docker ps -q --filter name=myapp | grep -q . && docker stop myapp && docker rm myapp || true sh docker run -d --name myapp -p 8080:8080 myapp:latest } } } post { success { echo Docker image built and container running } failure { echo Something went wrong with Docker pipeline } } }
Explicación docker build -t myapp:latest . construye la imagen a partir del Dockerfile docker run -d ... ejecuta el contenedor y se incluyen pasos para parar y eliminar instancias previas evitando errores por nombres duplicados.
Tarea 02 Jenkins Declarative Pipeline usando Docker DSL de Groovy Jenkins ofrece un plugin Docker Pipeline que simplifica la construcción y ejecución de contenedores desde el DSL eliminando muchas tareas manuales de limpieza. Asegúrate de instalar el plugin Docker Pipeline desde Manage Jenkins Manage Plugins.
Ejemplo Jenkinsfile usando Docker DSL pipeline { agent any stages { stage(Build and Run with Docker DSL) { steps { script { def myImage = docker.build myapp:latest myImage.inside { sh echo Running inside Docker container sh python --version || echo Python not installed in base image } } } } } }
Qué ocurre docker.build myapp:latest construye la imagen desde el Dockerfile en el repositorio y .inside ejecuta comandos dentro del contenedor creado evitando conflictos de nombre porque Jenkins gestiona el ciclo de vida del contenedor.
Comparación Enfoque sh comandos shell mayor control pero requiere gestionar paradas y limpieza manual de contenedores y puede ser más propenso a errores de concurrencia. Enfoque Docker DSL más limpio recomendado para pipelines con múltiples builds y para entornos donde se quiere evitar fugas de contenedores y gestionar dependencias internas del contenedor.
Buenas prácticas Ejecutar pruebas dentro de contenedores usar etapas separadas Build Test Deploy parametrizar tags de imágenes y almacenar artefactos en registries privados usar credenciales seguras para registries y orquestación preferir el DSL de Docker cuando sea posible para simplificar la gestión de contenedores.
Comandos útiles docker build -t myapp:latest . para construir la imagen docker run -d --name myapp -p 8080:8080 myapp:latest para ejecutar el contenedor docker ps para verificar contenedores en ejecución docker images para ver imágenes locales.
Próximos pasos Crear dos jobs en Jenkins por ejemplo day27-sh-docker y day27-dsl-docker ejecutar ambas pipelines confirmar estado con docker ps en el servidor Jenkins y extender las pipelines agregando etapas de Test y Deploy integrando herramientas de CI pruebas unitarias y despliegue automatizado a entornos cloud aws y azure cuando aplique.
Acerca de Q2BSTUDIO Q2BSTUDIO es una empresa de desarrollo de software especializada en aplicaciones a medida y software a medida que combina experiencia en inteligencia artificial y ciberseguridad para ofrecer soluciones robustas y escalables. Ofrecemos servicios cloud aws y azure servicios inteligencia de negocio e implementaciones de power bi para visualización y análisis. Desarrollamos soluciones de ia para empresas incluyendo agentes IA personalizados y pipelines de datos que impulsan la toma de decisiones. Si buscas consultoría en inteligencia artificial ciberseguridad o creación de aplicaciones a medida Q2BSTUDIO acompaña tu proyecto desde el diseño hasta la operación segura en producción.
Palabras clave 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
Conclusión Integrar Jenkins con Docker mejora la reproducibilidad y aislamiento de builds. Para tareas simples y control fino el enfoque sh puede servir. Para mayor robustez y mantenimiento el Docker DSL es la opción recomendada. Contacta a Q2BSTUDIO para diseñar una pipeline CI CD a medida que incluya pruebas despliegue y buenas prácticas de seguridad y cloud.