diff --git a/Jenkinsfile b/Jenkinsfile index 469ca96..51d2dac 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -415,11 +415,24 @@ PY docker version || true exit 1 fi - docker run --privileged --rm "${BINFMT_IMAGE}" --install amd64,arm64 + retry_docker() { + attempts="$1" + delay="$2" + shift 2 + rc=0 + for attempt in $(seq 1 "${attempts}"); do + "$@" && return 0 + rc=$? + echo "docker command failed with rc=${rc}; retrying in ${delay}s (${attempt}/${attempts})" + sleep "${delay}" + done + return "${rc}" + } + retry_docker 4 10 docker run --privileged --rm "${BINFMT_IMAGE}" --install amd64,arm64 BUILDER_NAME="metis-builder-${BUILD_NUMBER}" docker buildx rm "${BUILDER_NAME}" >/dev/null 2>&1 || true - docker buildx create --name "${BUILDER_NAME}" --driver docker-container --driver-opt image=registry.bstein.dev/bstein/buildkit:buildx-stable-1 --use - docker buildx inspect "${BUILDER_NAME}" --bootstrap + retry_docker 4 10 docker buildx create --name "${BUILDER_NAME}" --driver docker-container --driver-opt image=registry.bstein.dev/bstein/buildkit:buildx-stable-1 --use + retry_docker 4 10 docker buildx inspect "${BUILDER_NAME}" --bootstrap ''' } }