2021-08-09 14:04:06 +00:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
# shellcheck disable=SC2001,SC2155,SC2046
|
|
|
|
|
|
|
|
set -xo pipefail
|
|
|
|
|
|
|
|
main() {
|
|
|
|
local reg_user="$1"
|
|
|
|
local reg_pw="$2"
|
|
|
|
local reg_url="$3"
|
|
|
|
local images_file="$4"
|
|
|
|
# this confusing IFS= and the || is to capture the last line of the file if there is no newline at the end
|
|
|
|
while IFS= read -r img || [ -n "${img}" ]; do
|
2021-08-08 03:57:12 +00:00
|
|
|
# file is expected to have src and dst images delimited by a space
|
|
|
|
local src_img="$(echo "${img}" | cut -d' ' -f1)"
|
|
|
|
local dst_img="$(echo "${img}" | cut -d' ' -f2)"
|
|
|
|
skopeo copy --all --dest-tls-verify=false --dest-creds="${reg_user}":"${reg_pw}" docker://"${src_img}" docker://"${reg_url}"/"${dst_img}"
|
2021-08-09 14:04:06 +00:00
|
|
|
done <"${images_file}"
|
|
|
|
}
|
|
|
|
|
|
|
|
main "$1" "$2" "$3" "$4"
|