Make container fetching more reliable (#1866)

It seems that the GitHub container registry sometimes returns 503
service unavailable temporarily ("Error fetching tags list: invalid status
code from registry 503"). Use skopeo's retry mechanism to try up to 5
times before failing.
This commit is contained in:
Stefan Agner 2022-04-25 14:58:22 +02:00 committed by GitHub
parent e61246f5ba
commit 2114dd328f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,5 +1,9 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -e
set -u
set -o pipefail
arch=$1 arch=$1
machine=$2 machine=$2
version_json=$3 version_json=$3
@ -7,8 +11,6 @@ image_json_name=$4
dl_dir=$5 dl_dir=$5
dst_dir=$6 dst_dir=$6
set -e
image_name=$(jq -e -r --arg image_json_name "${image_json_name}" \ image_name=$(jq -e -r --arg image_json_name "${image_json_name}" \
--arg arch "${arch}" --arg machine "${machine}" \ --arg arch "${arch}" --arg machine "${machine}" \
'.images[$image_json_name] | sub("{arch}"; $arch) | sub("{machine}"; $machine)' \ '.images[$image_json_name] | sub("{arch}"; $arch) | sub("{machine}"; $machine)' \
@ -17,7 +19,7 @@ image_tag=$(jq -e -r --arg image_json_name "${image_json_name}" \
'.[$image_json_name]' < "${version_json}") '.[$image_json_name]' < "${version_json}")
full_image_name="${image_name}:${image_tag}" full_image_name="${image_name}:${image_tag}"
image_digest=$(skopeo inspect "docker://${full_image_name}" | jq -r '.Digest') image_digest=$(skopeo inspect --retry-times=5 "docker://${full_image_name}" | jq -r '.Digest')
# Cleanup image name file name use # Cleanup image name file name use
image_file_name="${full_image_name//[:\/]/_}@${image_digest//[:\/]/_}" image_file_name="${full_image_name//[:\/]/_}@${image_digest//[:\/]/_}"