Lleva tu integración continua al siguiente nivel al convertir tu salida de CI en un artifact reutilizable: la imagen Docker con la que ejecutas los tests. Aquí verás cómo autenticar Jenkins con Docker Hub, usar el bloque with registry para hacer docker image push y por qué guardar la imagen en remoto mejora la resiliencia y el rollback.
¿Cómo publicar imágenes Docker desde Jenkins a Docker Hub?
El objetivo es que el resultado final de la automatización sea una imagen Docker lista para uso y despliegue. Esa imagen se almacena en un repositorio: el más común es Docker Hub (también existen otros como el de AWS o uno propio). Para el flujo descrito, se usa Docker Hub como destino.
¿Qué es el artifact en CI y dónde guardarlo?
El artifact es la imagen que construyes y con la que corres los tests.
Guardarlo en un repositorio Docker permite reutilizarla y versionarla.
Para este flujo, se publica en Docker Hub desde Jenkins.
¿Cómo configurar credenciales en Jenkins para Docker Hub?
Crea una cuenta en hub.docker.com y genera un token de autenticación en tu consola.
En Jenkins, entra a Credentials y sigue: Scopes to Jenkins > Jenkins > Global Credentials.
Pulsa Add Credentials y elige tipo: username with password.
Ingresa tu username y el token como contraseña.
Asigna un ID consistente con tu pipeline, por ejemplo: "docker hub credentials".
Asegúrate de referenciar ese ID en el código del pipeline.
¿Qué hace el bloque with registry en el Jenkinsfile?
La publicación ocurre solo al estar en la rama master.
El bloque with registry (también referido como withregistry) sin URL asume el valor por defecto: hub.docker.com.
Dentro del bloque, usas las credenciales guardadas e invocas docker image push.
Existen otros métodos de autenticación, pero este es el más sencillo; no es el más seguro.
// Jenkinsfile (fragmento ilustrativo)// Publica la imagen cuando la rama es 'master'when { branch 'master'}steps { script { docker.withRegistry('','docker hub credentials'){// La imagen ya fue construida y tagueada en 'build' sh 'docker image push <imagen:tag>'}}}
¿Qué sucede al hacer docker image push en el pipeline?
Al ejecutar la etapa de publicación, Jenkins usa las credenciales para autenticarse y subir la imagen al repositorio remoto. El proceso gestiona automáticamente los layers, los tags y el registro del hash resultante.
¿Cómo se resuelven los tags y los layers?
No necesitas pasar el tag en el push: ya se definió en el build.
El push sube los layers al repositorio; los existentes se reutilizan.
El registro muestra el hash de la imagen y el output del proceso.
¿Qué señales confirman autenticación y publicación?
Verás "authentication succeeded" en el log cuando Jenkins se conecte a Docker Hub.
El bloque with registry automatiza la sesión y el docker push.
El log muestra qué layers se suben y el resultado final del push.
¿Por qué guardar el artifact en remoto para rollback?
La imagen también vive en Jenkins, pero en remoto queda disponible siempre.
Mantienes redundancia ante fallos locales: si Jenkins falla, la imagen sigue en Docker Hub.
Facilita un rollback rápido con una versión previamente publicada.
Como siguiente paso, se puede hacer el deployment de esa imagen con Now.
¿Tienes dudas sobre la configuración de credentials o el bloque with registry? Cuéntame tu contexto y podemos afinar tu pipeline paso a paso.