1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
| #!/bin/bash
namespace=xiaoxuxuy
workdir=`pwd` log_file=${workdir}/sync_images_$(date +"%Y-%m-%d").log
logger () { log=$1 current_time='['$(date +"%Y-%m-%d %H:%M:%S")']' echo ${current_time} ${log} | tee -a ${log_file} }
images_hub() { while true; do read -p "输入镜像仓库地址(不加http/https): " registry read -p "输入镜像仓库用户名: " registry_user read -p "输入镜像仓库用户密码: " registry_password echo "您设置的仓库地址为: ${registry},用户名: ${registry_user},密码: ${registry_password}"
while true; do read -p "是否确认(Y/N): " confirm
if [ "$confirm" != Y ] && [ "$confirm" != y ] && [ "$confirm" = '' ]; then echo "输入不能为空,重新输入" elif [ "$confirm" == Y ] || [ "$confirm" == y ] ; then result=`docker login -u ${registry_user} -p ${registry_password} ${registry}` if [ $? -ne 0 ]; then logger "镜像仓库 Login Failed,请重试!" break else logger "镜像仓库 ${result}" break 2 fi elif [ "$confirm" == N ] || [ "$confirm" == n ] ; then exit 1 else echo '请输入Y或N' fi done done }
images_hub
images=`cat images.txt`
docker_push() { for imgs in $(echo ${images}); do n=$(echo ${imgs} | awk -F"/" '{print NF-1}') if [ ${n} -eq 0 ]; then img_tag=${imgs} docker tag ${imgs} ${registry}/${namespace}/${img_tag} docker push ${registry}/${namespace}/${img_tag} elif [ ${n} -eq 1 ]; then img_tag=$(echo ${imgs} | awk -F"/" '{print $2}') docker tag ${imgs} ${registry}/${namespace}/${img_tag} docker push ${registry}/${namespace}/${img_tag} elif [ ${n} -eq 2 ]; then img_tag=$(echo ${imgs} | awk -F"/" '{print $3}') docker tag ${imgs} ${registry}/${namespace}/${img_tag} docker push ${registry}/${namespace}/${img_tag} else echo "No available images" fi done }
docker_push
|