HEADER_lecciones_de_software

Pipeline en Jenkins para un microservicio Java - Etapas Image y Deploy

por Juan Felipe Becerra, el 6 de julio de 2020

Pipeline en Jenkins para un microservicio Java - Etapas Image y Deploy

Continuamos con las Lecciones para la construcción de una Pipeline en Jenkins para un microservicio Java. Ya vimos la primera parte de la Etapa Build y la segunda etapa Scan. En esta tercera entrega veremos la etapa Image y haremos el Stage Deploy. 

Recuerda que para realizar esta Lección se debe tener lista la configuración inicial de Jenkins, sigue los pasos que te proporcionamos en la Lección Cómo instalar Jenkins utilizando Docker, que se enfoca en los ajustes previos para poder empezar utilizar Jenkins.

Para realizar el despliegue primero debemos construir una imagen con nuestro proyecto, para esto vamos a comenzar agregando nuestras credenciales de docker hub dentro de jenkins pues las necesitaremos más adelante.

Stage: Image

Instalación docker daemon

La imagen será creada desde el pipeline, por lo tanto, necesitamos poder ejecutar los comandos desde nuestro ambiente en Jenkins

1. Onten el ID de nuestro contenedor de jenkins ejecutando en la consola docker ps

Instalación docker daemon 1

2. Ahora ingresa al contenedor con el siguiente comando

docker exec -ti -u root IDCONTENEDOR bin/bash

Una vez estés dentro del contenedor vas a ejecutar los siguientes comandos uno por uno, comenzando por apt-get update

Instalación docker daemon 2

Continúa con estos de manera secuencial

apt-get -y install apt-transport-https ca-certificates curl gnupg2 software-properties-common

curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg > /tmp/dkey; apt-key add /tmp/dkey

add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") $(lsb_release -cs) stable"
apt-get update

apt-get -y install docker-ce

Al finalizar verifica la versión de docker

Instalación docker daemon 3

Configuración Jenkins

1. Accedemos a la opción “Credentials” seleccionamos la credencial principal “System” seguida de la opción “Global credentials” y encontraremos la opción para agregar una nueva credencial.

Configuración Jenkins 1

Si aún no tienes una en cuenta en docker puedes crearla acá, será necesaria para almacenar nuestra imagen en un repositorio más adelante.

Te recomendamos usar el ID dockerhub dentro de tu credencial, para que puedas identificarla y referenciarla de manera más sencilla.

Configuración Jenkins 2

2. Crea un repositorio dentro de tu dockerhub, a este le daremos un uso específico durante esta práctica

Configuración Jenkins 3

Configuración pipeline

Por último dirígete a la sección del script del pipeline

1. Dentro de las variables de entorno agrega dos más, correspondientes al repositorio de docker hub que previamente creaste y al ID de las credenciales, deberás tener algo como esto con tus datos

environment {
                PRAGMA_USER = "maria.ocampo"
                PROJECT_ROOT = "practica-devops"
                EMAIL_ADDRESS = "maria.ocampo@pragma.com.co"
                REGISTRY = "maria33/devops"
                REGISTRY_CREDENTIAL = "dockerhub"
}

2. Ahora agrega el nuevo stage, justo posteriormente al stage scan

stage("build-image"){
             steps{
                                          sh "docker build -t ${REGISTRY}:${BUILD_NUMBER} ."
              }
}

Por último clic en Apply y finalmente en Guardar.

Configuración pipeline 1

Ahora, al ejecutar el pipeline tendrás la nueva etapa, accede al log para que puedas validar la creación de la imagen

Configuración pipeline 3

Podemos validar la creación de la imagen con un docker images desde la consola de la máquina

Configuración pipeline 4

Stage: Deploy

Para finalizar agregaremos una última etapa a nuestro pipeline

stage("deploy") {
                   steps {
                              sh "docker run -p 8090:8090 ${REGISTRY}:${BUILD_NUMBER}"
               }docker
          }

Stage: Deploy Pipeline 1

Construye el pipeline con este último cambio, observa la consola para que hagas seguimiento a su paso a paso. Finalmente valida la creación del contenedor con tu aplicación:

Stage: Deploy Pipeline 2

Puedes consumir sus servicios desde una prueba rápida por medio de postman

Stage: Deploy Pipeline 3

 

Nuevo llamado a la acción

Temas:Desarrollo de Software

Lecciones Pragma

Lecciones en Academia Pragma

Aquí encontrarás tutoriales técnicos para que apliques en temas de desarrollo de software, cloud, calidad en software y aplicaciones móviles. 

También puedes visitar nuestro Blog con contenido actual sobre Transformación Digital, Marketing, Conocimiento de Usuario y más. 

Blog

Suscríbete a la academia

Descarga la Guía para trabajar con ambientes IBM Websphere Portal