jenkins自动化构建docker镜像并push到私有库脚本

该脚本仅供参考,需根据实际情况修改或扩展。

#!/bin/bash

#私有库url
repositryUrl='192.168.120.177:5000'

#获取项目版本号作为镜像的tag
version=`awk '/<version>[^<]+<\/version>/{gsub(/<version>|<\/version>/,"",$1);print $1;exit;}' pom.xml`

#获取小写项目名作为镜像名
typeset -l imageName
imageName=`awk '/<artifactId>[^<]+<\/artifactId>/{gsub(/<artifactId>|<\/artifactId>/,"",$1);print $1;exit;}' pom.xml`  

#批量删除以前构建的镜像

#有些打了tag的镜像和源镜像的imageId相同,需要先根据 repositry:tag删
removelist=$(docker images |grep $imageName | awk '{print $1":"$2}')

if [ ! -n "$removelist" ]; then
echo "nothing to remove"
else
docker rmi $removelist
fi

#再根据ImageId 删
removelist=$(docker images |grep $imageName | awk '{print $3}')

if [ ! -n "$removelist" ]; then
echo "nothing to remove"
else
docker rmi $removelist
fi

#构建镜像
#target/ 为dockerfile所在的路径
docker build -t $imageName:$version target/

#推送镜像到私有仓库
docker tag $imageName:$version $repositryUrl/$imageName:$version
docker push $repositryUrl/$imageName:$version

#将该版本镜像作为latest版本并推送到私有仓库
#如果pull时不指定tag,默认pull latest tag
docker tag $imageName:$version $repositryUrl/$imageName 
docker push  $repositryUrl/$imageName
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值