Día 24: Jenkins CI/CD completo

Guía paso a paso para implementar un pipeline CI/CD con Jenkins y Docker Compose: configuración de plugins, credenciales, webhooks de GitHub y despliegue reproducible.

18 ago 2025 • 5 min read • Q2BSTUDIO Team

Inteligencia-Artificial-

Resumen paso a paso fácil de seguir para implementar un proyecto completo de CI CD con Jenkins y Docker Compose, traducido y adaptado al español por Q2BSTUDIO.

Prerequisitos generales: se asume que Jenkins ya está instalado y accesible, y que Docker y Docker Compose están instalados en la máquina donde se ejecutarán los trabajos de Jenkins, ya sea el controlador o un agente.

Instalar plugins esenciales en Jenkins: desde Manage Jenkins Plugins Available instalar los plugins Git, GitHub, GitHub Branch Source, Pipeline y Docker Pipeline si se desea soporte extra para tareas con contenedores.

Dar permisos a Jenkins para usar Docker: en el host de Jenkins ejecutar los comandos sudo usermod -aG docker jenkins y sudo systemctl restart jenkins. Si los builds se ejecutan en un agente, cerrar sesión o reiniciar el agente según corresponda. Verificación rápida crear un job freestyle temporal con Execute shell y ejecutar docker version para confirmar que Jenkins puede invocar Docker.

Añadir credenciales de GitHub en Jenkins: generar un personal access token en GitHub con permisos repo y opcionalmente admin repo hook. En Jenkins Manage Jenkins Credentials System Global Add Credentials elegir Secret text y pegar el token, asignar un id identificable como github-pat para usarlo fácilmente en jobs.

Configurar el servidor GitHub en Jenkins opcional pero recomendado: Manage Jenkins System sección GitHub añadir servidor GitHub usando las credenciales github-pat y testar la conexión hasta que muestre éxito.

Task 1 Fork e integración con GitHub y webhook: en GitHub hacer fork del repositorio objetivo a su cuenta y copiar la URL HTTPS del fork tipo https://github.com/usuario/repositorio.git para usarla en Jenkins.

Crear job Freestyle en Jenkins: New Item nombre my-dockerized-app-freestyle seleccionar Freestyle project. En Source Code Management elegir Git y pegar la URL de su fork. Añadir credenciales si no se han agregado globalmente y configurar la rama por defecto como main o la rama que use su proyecto.

Build Triggers: activar GitHub hook trigger for GITScm polling si va a usar webhook. Como alternativa si Jenkins no es accesible públicamente usar Poll SCM con un schedule como H/5 * * * * para muestrear cambios.

Añadir webhook en GitHub: su Jenkins debe ser accesible desde GitHub por URL pública o mediante un túnel tipo ngrok o cloudflared. En el fork GitHub Settings Webhooks Add webhook usar Payload URL https://su-jenkins:8080/github-webhook/ asegurarse de incluir la barra final, content type application/json, y seleccionar eventos push y opcionalmente pull request. Probar la entrega y verificar que el ping devuelva HTTP 200.

Task 2 Ejecutar la aplicación con Docker Compose desde Jenkins: si el repo no tiene todavía docker-compose.yml añadir uno en la raíz. Ejemplo de docker compose para una app Python y Postgres usar version 3.9 services web con build context . dockerfile Dockerfile container_name myapp-web ports 8000:8000 env_file .env depends_on db restart unless-stopped y servicio db image postgres:15-alpine container_name myapp-db environment POSTGRES_USER myapp POSTGRES_PASSWORD myapp POSTGRES_DB myapp volumes db_data:/var/lib/postgresql/data restart unless-stopped y volumes db_data vacío. Ajustar según su pila tecnológica si usa Node Java Go u otra.

Ejemplo simplificado de Dockerfile para Python: FROM python:3.11-slim WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY . . EXPOSE 8000 CMD gunicorn -b 0.0.0.0:8000 app:app. Cambiar el comando y puerto según su aplicación.

Añadir pasos de build en Jenkins Freestyle: en Configure Build Add build step Execute shell pegar el script siguiente que funciona con Docker Compose v2 usando docker compose. Si su host aún usa binario v1 sustituir docker compose por docker-compose. set -euxo pipefail cd $WORKSPACE docker compose -p myapp down -v --remove-orphans || true docker compose -p myapp up -d --build echo Containers: docker ps echo Compose services: docker compose -p myapp ps. Opcionalmente correr pruebas antes del despliegue con docker compose run --rm web pytest o verificar puertos con timeout 60 bash -c until nc -z localhost 8000; do sleep 2; done.

Agregar paso opcional de limpieza: Execute shell con set -euxo pipefail cd $WORKSPACE docker compose -p myapp down -v --remove-orphans para parar y borrar volúmenes cuando lo desee.

Verificar el ciclo CI CD: lanzar un Manual Build con Build Now y revisar Console Output para ver checkout git, build de imágenes y logs de compose up. En el host de Jenkins ejecutar docker ps y confirmar que aparezcan containers myapp-web y myapp-db. Abrir la aplicación en el navegador en la dirección https://jenkins-host:8000 o el puerto que haya mapeado. Probar webhook haciendo un commit pequeño al fork y push; Jenkins debe disparar el job automáticamente y redeplegar.

Errores comunes y soluciones: Jenkins no puede ejecutar Docker agregar usuario jenkins al grupo docker y reiniciar. Webhook 403 o timeout asegurar que https://jenkins:8080/github-webhook/ es accesible desde GitHub y mantener la barra final. Compose no encontrado ejecutar docker compose version o instalar Docker Compose v2 o usar docker-compose en su lugar. Puerto en uso cambiar el puerto publicado en docker-compose.yml o detener la aplicación que ocupa el puerto. Permisos en workspace asegurar que el usuario jenkins tenga permisos adecuados sobre los archivos del workspace.

Sobre Q2BSTUDIO: en Q2BSTUDIO somos una empresa de desarrollo de software especializada en aplicaciones a medida y software a medida para empresas de todos los tamaños. Ofrecemos servicios de inteligencia artificial e ia para empresas, desarrollo de agentes IA personalizados, así como soluciones de ciberseguridad y servicios cloud aws y azure. También brindamos servicios de inteligencia de negocio y consultoría en power bi para transformar datos en decisiones accionables. Nuestro equipo integra prácticas de DevOps y automatización con Jenkins y Docker para garantizar despliegues reproducibles y seguros, y diseñamos arquitecturas cloud escalables que combinan AWS y Azure según las necesidades del cliente.

Palabras clave estratégicas para mejorar posicionamiento: 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. Utilizamos estas tecnologías para crear productos seguros, escalables y optimizados para negocio, integrando pipelines CI CD eficientes y prácticas de seguridad desde la etapa de desarrollo hasta producción.

Si desea que Q2BSTUDIO implemente este pipeline para su proyecto o que adaptemos la solución a su stack tecnológico contactenos para una evaluación y propuesta personalizada.

A BREAK?

Play for a moment before you go

OUR SERVICES

How we can help you

Artificial intelligence

AI agents, chatbots, and intelligent assistants that automate tasks and serve your customers 24/7 to improve the efficiency of your business.

More info

Software Development

Web, mobile, and desktop applications, intranets, e-commerce, SaaS, and management platforms designed for your company's specific needs.

More info

Cloud services

Migration, infrastructure, managed hosting, high availability, and security on Microsoft Azure and Amazon Web Services to help your business scale without limits.

More info

Cybersecurity and pentesting

Security audits, penetration testing and protection of applications, data and infrastructure on-premise and cloud, with ethical hacking and regulatory compliance.

More info

Business Intelligence

Dashboards and data analysis with Power BI: we integrate your sources, design dashboards and KPIs and turn your data into decisions.

More info

Process automation

We automate repetitive tasks and connect your applications with n8n, Power Automate, Make, and RPA, eliminating manual work and increasing productivity.

More info

Training for Companies

We train your teams in technology with criteria: web development, databases, Git, best practices and security, automation with n8n, artificial intelligence for companies and creation of AI solutions with Azure AI Foundry.

More info

Code Auditing

We audit the code that you, your team or an AI create: we tell you what is good and what to improve, we secure it and make it ready for production, web or app.

More info

AI Image Generation

We create for you the images that your business needs with artificial intelligence: product, networks, advertising, illustration and avatars. You tell us what you want and we deliver it ready to use.

More info

AI Video Generation

We create videos with artificial intelligence for you: promotional, networking, virtual presenters, dubbing and animations. You tell us the idea and we will deliver it assembled and ready to publish.

More info

AI Conversational Avatars

We create conversational avatars with AI – digital humans with a face and voice – that serve your customers and teams with the knowledge of your company, on your website, interactive monitors, WhatsApp or Teams.

More info

Online Marketing and AI

Google Ads, Meta Ads, LinkedIn Ads and AI Engine Positioning (GEO/AEO): we attract customers and make your brand appear where they search for you, also on ChatGPT, Gemini and Perplexity.

More info

Do you have a project in mind?

Tell us your vision and we'll turn it into a software solution. Whatever the scope, we make your idea real.

Live Chat