自动检测Dockerfile文件并打包成镜像脚本2021-06-11

自动检测当前路径下所有Dockerfile并打包脚本

本脚本为shell脚本,使用与微服务的批量打包,为了方便运维批量打包docker镜像,估写了这份脚本,请大家多多指教。复制即可用;
注意,此脚本只适用于每个项目都有Dockerfile文件的前提下使用

#!/bin/bash
dirs=`ls`

# 获取当前最大版本号
function getMaxVersion(){
num=$#
i=0
maxV="V1.0"
for item in $@
do
    m=($i % 2)
    if (( ($i % 2) == 1 ));then
        if [[ $item > $maxV ]];then
            maxV=$item
        fi

    fi
    ((i++))
done
}
#开始编译
function dockerBuild()
{
        p1=`docker images|grep $1|awk -F ' ' '{print $1,$2}'`
        p2=`echo $p1|cut -d " " -f1`
        vs=`echo $p1|cut -d " " -f2`
        getMaxVersion $p1
        vs=$maxV
        vn=${vs#*V}
        nvn=$(echo "scale=1;$vn+0.1"|bc)
        echo "updating to" $p2":"$nvn
        docker build -t $p2":V"$nvn .
        echo "---------END"
}


#自动向下寻找Dockerfile,找到则开始打包
function checkfile()
{
path=`pwd`
    for dir in $@
    do
	echo ${dir}
	if [ -d "${dir}" ];then
	    cd ${dir}
	    if [ -f "./Dockerfile" ];then
		echo "---------BEGIN----------"
		dockerBuild ${dir} 
	    else
		checkfile `ls`
#		path=`pwd`
	    fi
	    cd ..
	else
	    if [ -f "./Dockerfile" ];then
                echo "---------BEGIN----------"
		dockerBuild ${dir}
            fi
	fi
    done
}

checkfile ${dirs}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值