paint-brush
Cómo hacer imágenes Docker con Jenkins Pipelinespor@sudip-sengupta
28,190 lecturas
28,190 lecturas

Cómo hacer imágenes Docker con Jenkins Pipelines

por Sudip Sengupta3m2020/07/13
Read on Terminal Reader
Read this story w/o Javascript

Demasiado Largo; Para Leer

Jenkins Pipeline es una herramienta poderosa cuando usa Jenkins para automatizar sus implementaciones. Las acciones flexibles y personalizadas divididas entre etapas son una buena razón para probar esta función. Crear su propia imagen de Docker y cargarla en Docker Hub para mantener su repositorio actualizado es un buen ejemplo para comprender cómo Jenkins Pipelines puede mejorar su forma de trabajo. Hay posibilidades de crear numerosas integraciones complejas a través de Pipelines a medida que avanza. El autor, Sudip-sengupta Sudip Sengupta, es un arquitecto de soluciones con más de 15 años de experiencia laboral.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Cómo hacer imágenes Docker con Jenkins Pipelines
Sudip Sengupta HackerNoon profile picture

Jenkins Pipeline es una herramienta poderosa cuando usa Jenkins para automatizar sus implementaciones. Las acciones flexibles y personalizadas divididas entre etapas son una buena razón para probar esta función.

Crear su propia imagen de Docker y cargarla en Docker Hub para mantener su repositorio actualizado es un buen ejemplo para comprender cómo Jenkins Pipelines puede mejorar su forma de trabajo.

requisitos previos

  • Un servidor con Jenkins y Docker ejecutándose (el usuario de Jenkins debería poder ejecutar Docker).
  • cuenta Github.
  • Cuenta del concentrador Docker.

Configuración de su entorno

Instale el complemento Docker Pipelines en Jenkins:

Administrar Jenkins → Administrar complementos.

Busque Docker Pipelines, haga clic en Instalar sin reiniciar y espere hasta que termine.

Cargue su definición de Dockerfile en su repositorio de Github. Haga clic en el botón verde Clonar o Descargar y copie la URL, ya que la necesitará más adelante.

En Jenkins, debe crear una nueva credencial con los detalles de su cuenta de Docker Hub. Vaya a Credenciales → Global → Agregar credenciales y complete el formulario con su nombre de usuario y contraseña. Complete la identificación y las descripciones. Tenga en cuenta que si configura la ID, necesitará esta ID específica para referir esta credencial desde sus scripts. Aquí solo estamos usando dockerhub_id .

Creando tu primer Pipeline de Jenkins

Ahora, estamos listos para crear nuestro primer Pipeline . En Jenkins, vaya a Nuevo elemento → Canalización, escriba el nombre que desea para este proyecto de canalización y luego haga clic en Aceptar.

A continuación, puede omitir todas las opciones General y Build Trigger e ir directamente a la sección Pipeline . Aquí puede incluir una definición de Pipeline (generalmente llamada Jenkinsfile) o puede hacer referencia a una ubicación externa como Git o Subversion.

El Pipeline que estamos definiendo tiene cuatro etapas:

  • La primera es obtener el Dockerfile de nuestro repositorio de Github,
  • El segundo construirá la imagen usando
     $BUILD_NUMBER
    para etiquetar la versión,
  • El tercero es enviar la imagen creada a su registro de Docker Hub.
  • Finalmente, limpiaremos la imagen construida previamente en el servidor local.

Tenga en cuenta que debe modificar el código con sus detalles específicos de Docker Hub y Github:

 pipeline { environment { registry = "YourDockerhubAccount/YourRepository" registryCredential = 'dockerhub_id' dockerImage = '' } agent any stages { stage( 'Cloning our Git' ) { steps { git 'https://github.com/YourGithubAccount/YourGithubRepository.git' } } stage( 'Building our image' ) { steps{ script { dockerImage = docker.build registry + ": $BUILD_NUMBER " } } } stage( 'Deploy our image' ) { steps{ script { docker.withRegistry( '' , registryCredential ) { dockerImage.push() } } } } stage( 'Cleaning up' ) { steps{ sh "docker rmi $registry : $BUILD_NUMBER " } } } }

Ejecute su canalización y cree imágenes

Ahora estamos listos para ejecutar Pipeline y verificar la salida si hay un error presente en cualquier etapa durante la ejecución.

Vaya a su proyecto Pipeline en Jenkins y haga clic en Build Now   para ejecutar manualmente. Debería obtener una salida secuencial de las diferentes etapas similar a esta:

Si todo está bien, puede buscar en su repositorio de Docker Hub una nueva imagen etiquetada con la versión de compilación de Jenkins que coincida con su registro de Docker Hub:

Este fue un ejemplo básico de cómo trabajar con Pipelines e integrar diferentes componentes de sus implementaciones. Hay posibilidades de crear numerosas integraciones complejas a través de Pipelines a medida que avanza.

Algunas ideas para llegar más lejos con Jenkins:

  • Defina un webhook para ejecutar Pipeline cuando se envíe una confirmación a su repositorio de Github.
  • Incluya varios contenedores en la misma tubería para mantener diferentes etapas (como backend y frontend) o diferentes entornos (dev/prod)
  • Establece una notificación por correo electrónico/Telegram/Slack con el estado y/o salida de tu Pipeline.

Como puede ver, muchas opciones son fácilmente alcanzables. Solo sigue jugando y profundizando en Jenkins Pipelines Orchestration.

Sobre el autor: Sudip es un arquitecto de soluciones con más de 15 años de experiencia laboral y es el fundador de Javelynn . Le gusta compartir su conocimiento escribiendo para Hackernoon , DZone , Appfleet y muchos más, y aunque no está haciendo eso, debe estar pescando o jugando al ajedrez.

Publicado anteriormente en https://appfleet.com/ .