This commit is contained in:
Alejandro Sarmiento
2024-03-12 19:50:04 +01:00
parent 757c4b6786
commit e796a8b8c3

View File

@@ -65,6 +65,46 @@ pipeline {
stage ('Cleanup Old Docker Images') {
steps {
script {
withCredentials([string(credentialsId: 'docker-registry-url-to-push', variable: 'REGISTRY_URL_PUSH')]) {
def registry = "${REGISTRY_URL_PUSH}" // Ajusta esto a tu URL de Docker Registry
def name = 'clean-architecture-backend' // Ajusta esto al nombre de tu imagen
def buildNumber = env.BUILD_NUMBER.toInteger()
def startVersion = 1
def endVersion = buildNumber - 3 // Para borrar hasta la versión "endVersion"
for (int i = startVersion; i <= endVersion; i++) {
def versionToDelete = "0.0.${i}"
def fullImageNameToDelete = "${name}:${versionToDelete}"
echo "Borrando la imagen ${registry}/${fullImageNameToDelete}"
// Comando modificado para utilizar variables de Jenkins
sh """
curl -v -sSL -X DELETE "http://${registry}/v2/${fullImageNameToDelete}/manifests/\$(
curl -sSL -I \
-H "Accept: application/vnd.docker.distribution.manifest.v2+json" \
"http://${registry}/v2/${fullImageNameToDelete}/manifests/\$(
curl -sSL "http://${registry}/v2/${fullImageNameToDelete}/tags/list" | jq -r '.tags[0]'
)" \
| awk '\$1 == "Docker-Content-Digest:" { print \$2 }' \
| tr -d \$'\r' \
)"
"""
}
// No olvides ejecutar la recolección de basura para liberar espacio realmente.
//echo "Ejecutando garbage collect en el Docker Registry"
//sh "docker exec -it docker-registry bin/registry garbage-collect /etc/docker/registry/config.yml"
}
}
}
}
} //stages