From b1d392e085067aa0b9bc05d9e0e70f6c2c1a8428 Mon Sep 17 00:00:00 2001 From: Alejandro Sarmiento Date: Mon, 11 Mar 2024 19:56:35 +0100 Subject: [PATCH] sdfrftgh --- CleanArchitecture/Pro.Jenkinsfile | 37 ++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/CleanArchitecture/Pro.Jenkinsfile b/CleanArchitecture/Pro.Jenkinsfile index 77a1bad..c84e8ec 100644 --- a/CleanArchitecture/Pro.Jenkinsfile +++ b/CleanArchitecture/Pro.Jenkinsfile @@ -26,21 +26,33 @@ pipeline { } } - stage ('Push to Docker Registry') { + + stage ('Push to Docker Registry') { steps { script { def version = "0.0.${env.BUILD_NUMBER}" - sh "docker build --build-arg ENVIRONMENT=${ASP_ENVIRONMENT} -t clean-architecture-backend:${version} ./CleanArchitecture/" + def imageName = "clean-architecture-backend:${version}" + def fullImageName = "${DOCKER_REGISTRY_URL}/${imageName}" - sh "docker images" + // Construir la imagen + sh "docker build --build-arg ENVIRONMENT=${ASP_ENVIRONMENT} -t ${imageName} ./CleanArchitecture/" - // Utiliza las credenciales de Docker para subir la imagen + // Etiqueta la imagen para Docker Registry y la sube docker.withRegistry('https://dockerregistry.alexdev.es', 'dockerregistryalexdev') { - // Etiqueta la imagen para Docker Registry - sh "docker tag clean-architecture-backend:${version} dockerregistry.alexdev.es/clean-architecture-backend:${version}" - // Sube la imagen a Docker Registry - sh "docker push dockerregistry.alexdev.es/clean-architecture-backend:${version}" + sh "docker tag ${imageName} ${fullImageName}" + sh "docker push ${fullImageName}" } + + // Guardar el nombre completo de la imagen para su uso en etapas posteriores + env.FULL_IMAGE_NAME = fullImageName + } + } + } + stage ('Clean Local Docker Image') { + steps { + script { + // Eliminar la imagen del agente de Jenkins + sh "docker rmi ${env.FULL_IMAGE_NAME}" } } } @@ -52,18 +64,21 @@ pipeline { def deleteUntilVersion = currentVersion - 3 for (int i = 1; i <= deleteUntilVersion; i++) { def tag = "0.0.${i}" - + // Obtener el Docker-Content-Digest def digest = sh(script: "curl -s -H \"Accept: application/vnd.docker.distribution.manifest.v2+json\" -X GET -u ${DOCKER_REGISTRY_USER}:${DOCKER_REGISTRY_PASSWORD} https://${DOCKER_REGISTRY_URL}/v2/clean-architecture-backend/manifests/${tag} | jq -r '.config.digest'", returnStdout: true).trim() - + // Eliminar la imagen usando el Docker-Content-Digest obtenido sh "curl -s -X DELETE -u ${DOCKER_REGISTRY_USER}:${DOCKER_REGISTRY_PASSWORD} https://${DOCKER_REGISTRY_URL}/v2/clean-architecture-backend/manifests/${digest}" - + echo "Eliminada la versión ${tag} con digest ${digest}" } } } } + + + } //stages