赞
踩
目录
统一各环境业务微服务构建流程,提高CICD成功率以及时效性
按需选择构建任务模板类型
授权当前构建任务相关用户组/用户所需权限
合理的构建策略可用于更好的项目复盘
配置构建环境布尔参数
auto_deploy_test #自动部署到TEST环境
auto_deploy_uat #自动部署到UAT环境
auto_deploy_pre #自动部署到PRE环境
auto_deploy_prod #自动部署到生产环境
up_pro_img #上传到生产环境镜像服务器
配置构建分支Git参数:
branch
配置构建服务布尔参数:
构建服务选项:
xxxx_svr
使用开发环境相同maven版本,避免版本差异问题。
clean package -U -Dmaven.test.skip=true -e
- #!/bin/bash
- #jenkins自动化构建并部署到k8s脚本
- set -x
- #VERSION=`mvn help:evaluate -Dexpression=project.version | grep "^[^\[]"`
- VERSION=1.0.0.RELEASE
- set +x
- echo "version:$VERSION"
-
- tag=$VERSION`date +%Y%m%d%H%M`
- #tag=$VERSION
- echo "tag:$tag"
-
-
- #jenkins_job=bladex-svr-x.x
- #workspace=/var/lib/jenkins/jobs/$jenkins_job/workspace
- #本次提交代码更新产生的日
-
- #harbor
- harbor_name=xxxxxx
- harbor_passwd=xxxxxx
- harbor_url=harbor.xxxx.tech
-
- harbor_name_pro=xxxx@aliyun.com
- harbor_passwd_pro=xxxx
- harbor_url_pro=registry.cn-shenzhen.aliyuncs.com
-
- #deploy_dir=/root/data/k8s/bladex3.1
-
-
- #私有仓库地址和库名
- harbor=harbor.xxxx.tech/k8s
- harbor_pro=registry.cn-shenzhen.aliyuncs.com/xxxx
-
-
-
- if [ $axxx_svr = true ]
- then
- build_project="$build_project"" axxx-svr"
-
- fi
-
- if [ $bxxx_svr = true ]
- then
- build_project="$build_project"" bxxx-svr"
-
- fi
-
- if [ $cxxx_svr = true ]
- then
- build_project="$build_project"" cxxx-svr"
-
- fi
-
-
- echo "build_project:$build_project"
- for project in $build_project
- do
- #本次构建image用的TAG
- echo "$project项目更新需要重新创建docker image"
- echo "编译项目分支:$branch"
-
- image=$harbor/$project:$tag
- image_pro=$harbor_pro/$project:$tag
-
- echo "镜像:$image"
- #部署配置文件名
- echo "项目目录:$workspace"
- #deploy_file=$project.yaml
- dockerfile=$(find $workspace -name $project)
- #dockerfile 绝对文件路径
-
- #构建image
- docker build -t $image $dockerfile/.
- #docker build -t $image -f $dockerfile/Dockerfile2 $dockerfile/.
- echo "$image 构建成功"
- sleep 2
-
- echo "上传$image 到Harbor私有仓库"
- docker login -u$harbor_name -p$harbor_passwd $harbor_url >/dev/null 2>&1
- docker push $image
- sleep 3
-
- echo "是否上传镜像到生产镜像服务器: $up_pro_img"
- if [[ $up_pro_img = true ]]
- # && [[ $branch == "master" ]]
- then
- docker tag $image $image_pro
- echo "上传$image_pro 到Harbor外网仓库"
- docker login -u$harbor_name_pro -p$harbor_passwd_pro $harbor_url_pro >/dev/null 2>&1
- docker push $image_pro
- fi
-
- echo "是否部署镜像到uat k8s环境: $auto_deploy_uat"
- if [ $auto_deploy_uat == "true" ]
- then
- #部署到开发k8s环境 #更新deployment中的image
- echo "正在部署 $project 到uat环境的k8s集群中........................................."
- #远程连接到k8s-master更新服务
- sudo ssh root@xxx.xxx.1.1 > /dev/null 2>&1 << EOF
- kubectl set image -n bladex3-uat deployment/$project $project=$image
- exit
- EOF
- fi
- done
- #删除本地构建的镜像
- echo "删除$image"
- docker rmi $image
-
-
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。