Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- containers=(
- docker.io/library/consul:latest
- docker.io/library/vault:latest
- docker.io/library/redis:alpine
- docker.io/library/nginx:alpine
- docker.io/library/alpine:latest
- )
- urlencode() {
- # urlencode <string>
- old_lc_collate=$LC_COLLATE
- LC_COLLATE=C
- local length="${#1}"
- for (( i = 0; i < length; i++ )); do
- local c="${1:i:1}"
- case $c in
- [a-zA-Z0-9.~_-]) printf "$c" ;;
- *) printf '%%%02X' "'$c" ;;
- esac
- done
- LC_COLLATE=$old_lc_collate
- }
- urldecode() {
- # urldecode <string>
- local url_encoded="${1//+/ }"
- printf '%b' "${url_encoded//%/\\x}"
- }
- download_image_to_dir() {
- local outfile=$(urlencode ${1})
- local outdir="${2}"
- skopeo copy "docker://${1}" "oci-archive:${2}/${outfile}.tar"
- }
- download_all_containers() {
- local outdir="./containers"
- mkdir -p "${outdir}"
- for item in "${containers[@]}"
- do
- download_image_to_dir "${item}" containers/
- done
- }
- upload_image_to_storage() {
- local infile="${1}"
- local imgname="$(urldecode $(basename "${infile}" .tar))"
- skopeo copy "oci-archive:${infile}" "containers-storage:${imgname}"
- }
- upload_local_containers() {
- local indir="./containers"
- for item in $(find "${indir}" -maxdepth 1 -name '*.tar');
- do
- upload_image_to_storage "${item}"
- done
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement