POLITICA DE COOKIES

Q2BSTUDIO.COM utiliza cookies técnicas, analíticas, de sesión y de publicidad con la finalidad de prestar un mejor servicio. No obstante, necesitamos su consentimiento explícito para poder utilizarlas. Así mismo puede cambiar la configuración de las cookies u obtener más información aquí .

Día 24: Jenkins CI/CD completo

## Día 24: Configuración completa de Jenkins para CI/CD

Publicado el 18/08/2025

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.

Fin del artículo, inicio de la diversión
Construyendo software juntos

Dando vida a tus ideas desde 2008

Diseñamos aplicaciones móviles y de escritorio innovadoras que cumplen con tus requisitos específicos y mejoran la eficiencia operativa.
Más info
Cuéntanos tu visión
Sea cual sea el alcance, podemos convertir tu idea en realidad. Envíanosla y charlemos sobre tu proyecto o una colaboración futura.
Contáctanos
artículos destacados
Live Chat
Enviado correctamente.

Gracias por confiar en Q2BStudio