Add docker pull retry (#6971)

This commit is contained in:
William Li 2020-03-30 11:56:33 -07:00 committed by GitHub
parent c1ce152d16
commit 5a9b329799
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -99,9 +99,30 @@ fi
# VSO
[ ! -z "$BUILD_BUILDID" ] && DOTNET_BUILD_CONTAINER_NAME="$BUILD_BUILDID"
function retry {
local max_count=$1
shift
local count=0
until "$@"; do
exit=$?
wait=$((2 ** $count))
count=$(($count + 1))
if [[ ${count} -lt ${max_count} ]]; then
echo "Retry $count/$max_count returned $exit, wait $wait seconds..."
sleep ${wait}
else
echo "Retry $count/$max_count returned $exit."
return ${exit}
fi
done
return 0
}
# Build the docker container (will be fast if it is already built)
# with retry since docker pull has high failure rate
echo "Building Docker Container using Dockerfile: $DOCKERFILE"
docker build --build-arg WORK_DIR=$DOCKER_HOST_SHARE_DIR --build-arg USER_ID=$(id -u) -t $DOTNET_BUILD_CONTAINER_TAG $DOCKERFILE
retry 10 docker build --build-arg WORK_DIR=$DOCKER_HOST_SHARE_DIR --build-arg USER_ID=$(id -u) -t $DOTNET_BUILD_CONTAINER_TAG $DOCKERFILE 2>&1
# Run the build in the container
echo "Launching build in Docker Container"