Add retry for docker's operations
Closes-Bug: PROD-23618 (PROD:23618)
Change-Id: If63ee7271b8f8921197530e6e14fbe30c1cbd85a
diff --git a/docker-mirror-images.groovy b/docker-mirror-images.groovy
index 92fea8e..4ccc74a 100644
--- a/docker-mirror-images.groovy
+++ b/docker-mirror-images.groovy
@@ -59,13 +59,17 @@
imageName = getImageName(sourceImage)
targetImageFull = "${targetRegistryPath}/${imageName}:${env.IMAGE_TAG}"
srcImage = docker.image(sourceImage)
- srcImage.pull()
+ common.retry(3, 5) {
+ srcImage.pull()
+ }
// Use sh-docker call for tag, due magic code in plugin:
// https://github.com/jenkinsci/docker-workflow-plugin/blob/docker-workflow-1.17/src/main/resources/org/jenkinsci/plugins/docker/workflow/Docker.groovy#L168-L170
sh("docker tag ${srcImage.id} ${targetImageFull}")
common.infoMsg("Attempt to push docker image into remote registry: ${env.REGISTRY_URL}")
- docker.withRegistry(env.REGISTRY_URL, env.TARGET_REGISTRY_CREDENTIALS_ID) {
- sh("docker push ${targetImageFull}")
+ common.retry(3, 5) {
+ docker.withRegistry(env.REGISTRY_URL, env.TARGET_REGISTRY_CREDENTIALS_ID) {
+ sh("docker push ${targetImageFull}")
+ }
}
if (targetImageFull.contains(externalMarker)) {
external = true
@@ -97,7 +101,9 @@
common.infoMsg("artifactoryProperties=> ${artifactoryProperties}")
// Call pipeline-library routine to set properties
def mcp_artifactory = new com.mirantis.mcp.MCPArtifactory()
- mcp_artifactory.setProperties(imgUrl - '/manifest.json', artifactoryProperties)
+ common.retry(3, 5) {
+ mcp_artifactory.setProperties(imgUrl - '/manifest.json', artifactoryProperties)
+ }
}
}
}