#!/bin/bash
set -e
dst_user=tanjunchen
dst_repo=docker.io
pull_tag_push_image(){
while read image; do
if [ -z "${image}" ]
then
continue
fi
echo "docker pull ${image}"
docker pull ${image}
echo "docker pull ${image} success!!!"
array=(`echo ${image} | tr ':' ' '` )
src_image=${array[0]}
src_version=${array[1]}
if [ ! ${src_image} ]; then
echo "src_image is null, stop tag and push"
continue
fi
if [ ! ${src_version} ]; then
echo "src_version is null, set default value latest"
src_version=latest
fi
echo "docker src images info ${src_image} ${src_version}"
image_array=(`echo ${src_image} | tr '/' ' '` )
image_name=${image_array[-1]}
if [ ! ${image_name} ]; then
echo "image_name is null, stop tag and push"
continue
fi
dst_image=${dst_repo}/${dst_user}/${image_name}:${src_version}
echo "docker destination images info ${dst_image}"
docker tag ${src_image}:${src_version} ${dst_image}
docker push ${dst_image}
done < images
}
pull_tag_push_image
其中 done < images 中的 images 内容是文本,示例如下所示:
gcr.io/spiffe-io/spire-agent:1.2.0
ghcr.io/spiffe/spiffe-csi-driver:0.1.0
gcr.io/spiffe-io/wait-for-it
k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.4.0
gcr.io/spiffe-io/spire-server:1.2.0
gcr.io/spiffe-io/k8s-workload-registrar:1.2.0