in jenkins-pipeline-shared-libraries/vars/cloud.groovy [169:182]
String dockerSquashImage(String baseImage, String squashMessage = "${baseImage} squashed", boolean replaceCurrentImage = true) {
String squashedPlatformImage = replaceCurrentImage ? "${baseImage}" : "${baseImage}-squashed"
// Squash images
def nbLayers = Integer.parseInt(sh(returnStdout: true, script: "docker history ${baseImage} | grep buildkit.dockerfile | wc -l").trim())
nbLayers++ // Get the next layer not done by buildkit
echo "Got ${nbLayers} layers to squash"
// Use message option in docker-squash due to https://github.com/goldmann/docker-squash/issues/220
def dockerSquashShellCmd = "docker-squash -v -m '${squashMessage}' -f ${nbLayers} -t ${squashedPlatformImage} ${baseImage}"
sh dockerSquashShellCmd
sh "docker push ${squashedPlatformImage}"
return squashedPlatformImage
}