jenkins部署docker容器化服务Kuernetes版ACK使用(提供部署源码)

容器服务 Kubernetes 版(简称 ACK)提供高性能且可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。

编写代码

#! /bin/bash
JAR_NOPATH=$(find . -maxdepth 1 -name "*.jar")
DOCKERFILE_NOPATH=$(find . -maxdepth 1 -name "Dockerfile")
transImg(){
   
    echo "begin transImg...$1(ver:$2)"
    echo $2 > $1.ver
    # tag的名称  registry-vpc.cn.aliyuncs.com/cc/ 内网  registry.cn.aliyuncs.com/cc/ 公网
    local registry_name="registry-vpc.cn.aliyuncs.com/cc/$1"
    local verName="${registry_name}:$2"
    local laName="${registry_name}:latest"
    # 删除已存在当前环境即将构建的镜像
    del_image $verName
    #构建
    docker build -t $verName .
    docker push $verName
    docker tag $verName $laName
    docker push $laName
    #删除已构建的镜像
    del_image ${
   registry_name}
    #删除jar包和dockerfile
    del_jar
    echo "push accomplished."
}
#删除镜像:$1 镜像名:版本号
del_image(){
   

    local images_id_exist=$(docker images $1 -q)
    if [ ! -z "$images_id_exist" ]; then
        if [ $2 == "false" ]; then
           echo "$1已存在同版本镜像文件,如需强行更新请勾选覆盖选项"
           exit -1
        fi
        echo "delete the image "$images_id_exist
        docker rmi ${
   images_id_exist}
    fi

}

del_jar(){
   
    if [ ! -z "${JAR_NOPATH}" ]; then
        echo "delete the jar "${
   JAR_NOPATH}
         rm -f ${
   JAR_NOPATH}
    fi
   if [ ! -z "${DOCKERFILE_NOPATH}" ]; then
        echo "delete the docker file "${
   DOCKERFILE_NOPATH}
         rm -f ${
   DOCKERFILE_NOPATH}
    fi
}


checkVersion(){
   
    echo "检测部署机镜像版本"
    docker ps|grep "registry.cn.aliyuncs.com/cc/" | awk '{
   t=substr($2,44);split(t,tt,":");print 

你可能感兴趣的:(环境搭建专栏,jenkins,docker,运维)