zoukankan      html  css  js  c++  java
  • jenkins docker push脚本

    #!/bin/bash
    
    docker -v
    
    #私有库url
    repositryUrl='192.168.7.52: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 .
    
    #推送镜像到私有仓库
    docker tag $imageName:$version $repositryUrl/$imageName:$version
    docker push $repositryUrl/$imageName:$version
    
    echo "push image success.... "
    
    #将该版本镜像作为latest版本并推送到私有仓库
    #如果pull时不指定tag,默认pull latest tag
    docker tag $imageName:$version $repositryUrl/$imageName 
    docker push  $repositryUrl/$imageName
    
    echo "push latest image success .... "
    
  • 相关阅读:
    目录(爬虫)
    目录(自动化开发)
    目录(Python基础)
    目录(Django开发)
    C#Revit二次开发之-一键切换构件连接顺序 SwitchJoinOrder
    Revit常用的元素过滤方法
    C#之txt的数据写入
    惰性加载
    python mysql and ORM
    Python之常用模块学习(二)
  • 原文地址:https://www.cnblogs.com/xiaojf/p/14626978.html
Copyright © 2011-2022 走看看