jenkins 服务器需先保留着原先构建的不同版本的应用镜像

[root@jenkins sh]# docker images|grep "maintain"
registry-vpc.cn-hangzhou.aliyuncs.com/******-ui-maintain 20190719 849ed46fa462 31 minutes ago 293 MB
registry-vpc.cn-hangzhou.aliyuncs.com/*******-ui-maintain latest 849ed46fa462 31 minutes ago 293 MB
d*****-maintain latest 849ed46fa462 31 minutes ago 293 MB
registry-vpc.cn-hangzhou.aliyuncs.com/******-ui-maintain 3.0.1 e2b4887b3db4 2 weeks ago 293 MB
registry-vpc.cn-hangzhou.aliyuncs.com/******-maintain 2.0.1 af427b4858d3 2 weeks ago 293 MB
registry-vpc.cn-hangzhou.aliyuncs.com/******-maintain 1.0.1 79bba8b2c438 2 weeks ago 293 MB
registry-vpc.cn-hangzhou.aliyuncs.com/********-maintain <none> 5055d71b89ef 2 weeks ago 293 MB

  

jenkins 构建配置参数化构建过程

配置下自定义的工作空间

无需源码管理

构建  执行 shell  , 将版本号参数传入 脚本

脚本 重新tag 自定义的版本号到镜像的latest , 再push 本地的latest到远程的阿里云镜像仓库

#!/bin/bash

#获取参数
while getopts "n:" opt; do
case $opt in
n)
version=$OPTARG
;;
\?)
;;
esac
done source /etc/profile sudo docker tag registry-vpc.cn-hangzhou.aliyuncs.com/z*****m/da*****-ui-maintain:$version d*****e-ui-maintain sudo docker login --username=***** -p Z*******dk registry-vpc.cn-hangzhou.aliyuncs.com sudo docker tag d*****e-ui-maintain registry-vpc.cn-hangzhou.aliyuncs.com/z*****em/d*****e-ui-maintain sudo docker push registry-vpc.cn-hangzhou.aliyuncs.com/z******m/d****e-ui-maintain curl https://cs.console.aliyun.com/hook/trigger?*******WfQv3D0 if [ $? -eq 0 ]; then
echo -e "\033[32m[ the application d*****e-ui-maintain successfully Rollbacked ]\033[0m" else
echo -e "\033[31m\033[01m[ the application d*****e-ui-maintain Rollback failed ]\033[0m" fi

  

执行回滚构建操作

回滚构建后 web 恢复到相应的版本

查看 jenkins  服务器 images 信息 , 本地镜像latest 的image id 跟 2.0.1 tag的是一致的

[root@jenkins sh]# docker images|grep "maintain"
registry-vpc.cn-hangzhou.aliyuncs.com/******-ui-maintain 20190719 849ed46fa462 51 minutes ago 293 MB
registry-vpc.cn-hangzhou.aliyuncs.com/*******-ui-maintain 3.0.1 e2b4887b3db4 2 weeks ago 293 MB
registry-vpc.cn-hangzhou.aliyuncs.com/*****-ui-maintain 2.0.1 af427b4858d3 2 weeks ago 293 MB
registry-vpc.cn-hangzhou.aliyuncs.com/******-ui-maintain latest af427b4858d3 2 weeks ago 293 MB
dataline-ui-maintain latest af427b4858d3 2 weeks ago 293 MB
registry-vpc.cn-hangzhou.aliyuncs.com/*****-ui-maintain 1.0.1 79bba8b2c438 2 weeks ago 293 MB
registry-vpc.cn-hangzhou.aliyuncs.com/*****-ui-maintain <none> 5055d71b89ef 2 weeks ago 293 MB

  

第二种方式:

如果阿里云镜像仓库已经保存了 应用各个版本的镜像版本

参数化构建传入tag 版本号

用 kubectl set image 命令 更新原先版本镜像的应用 , 实现版本的回滚功能

jenkins自动化回滚阿里云k8s应用版本的更多相关文章

  1. 阿里云k8s应用最新日志采集不到的问题

    问题描述: 阿里云k8s应用日志之前一直都是可以正常的采集, 先出现一问题, 通过kibana 和阿里云的日志服务都没法展示最新的k8s应用的日志, 部分应用的最新日志有被采集到,但大部分应用日志没有 ...

  2. 使用Gitlab-CI 实现NetCore项目Docker化并部署到阿里云K8S

    使用Gitlab-CI 实现NetCore项目Docker化并部署到阿里云K8S 先行条件: 1.了解NetCore项目基础命令,如dotnet publish   等几个常用命令. 2.了解Dock ...

  3. 朱晔和你聊Spring系列S1E11:小测Spring Cloud Kubernetes @ 阿里云K8S

    有关Spring Cloud Kubernates(以下简称SCK)详见https://github.com/spring-cloud/spring-cloud-kubernetes,在本文中我们主要 ...

  4. 阿里云k8s部署zookeeper集群

    1. 阿里云k8s创建有状态应用 StatefulSet ,  选择使用模板创建 可以创建自定义模板 apiVersion: apps/v1 kind: StatefulSet metadata: c ...

  5. 阿里云K8S下玩.NET CORE 3.1

    1. 创建阿里云K8S集群,本文以标准托管集群为例 1.1 创建一个 2台 centos 2core 4G的 k8s 集群 1.2 创建成功的模样 2. 创建 asp.net core webapi项 ...

  6. 阿里云k8s构建镜像时设置版本号用于版本回滚

    jenkins 构建配置参数化构建过程 构建  执行 shell  , 将版本号参数传入 脚本 脚本push  带版本号的镜像到阿里云镜像仓库 #!/bin/bash #获取参数 while geto ...

  7. 自动化部署-Jenkins备份回滚

    1.备份 备份可以使用批处理命令解决,实际就是复制当前发布文件 ::备份文件夹名,使用当前时间 set foldername=%date:~0,4%%date:~5,2%%date:~8,2%%tim ...

  8. 阿里云k8s服务springboot项目应用升级时出现502错误

    背景 随着小步快跑.快速迭代的开发模式被越来越多的互联网企业认同和采用,应用的变更.升级频率变得越来越频繁.为了应对不同的升级需求,保证升级过程平稳顺利地进行,诞生了一系列的部署发布模式. 停机发布 ...

  9. Jenkins发布回滚方案

    Jenkins回滚可以通过每次发布从主干打tag,然后发布的时候发tag,比如tag, v1, v2,v3 如果我发布了v3,想要回滚回v2,直接在Jenkins中选择v2的tag地址重新构建就可以回 ...

随机推荐

  1. python笔记41-虚拟环境virtualenv

    前言 如果你是一个python初学者,我是不建议你搞python虚拟环境的,我看到很多python的初学者同学,使用最新版的pycharm,新建一个工程时候默认就是venu虚拟环境. 然后在使用cmd ...

  2. 项目Alpha冲刺--9/10

    项目Alpha冲刺--9/10 作业要求 这个作业属于哪个课程 软件工程1916-W(福州大学) 这个作业要求在哪里 项目Alpha冲刺 团队名称 基于云的胜利冲锋队 项目名称 云评:高校学生成绩综合 ...

  3. 【python】Requests的三种参数请求方式

    URL参数请求: import requests ''' URL Parameters 请求方式: URL参数 例如: 以get 方式请求http://httpbin.org/get?first_na ...

  4. django-登录后得个人信息

    Web请求中的认证:https://yiyibooks.cn/xx/django_182/topics/auth/default.html Django使用会话和中间件来拦截request 对象到认证 ...

  5. modbus-poll和modbus-slave工具的学习使用——环境搭建

    在modbus的学习工具中,非modbus-poll和modbus-slave莫属了,在电脑上模拟的过程中,两者缺一不可 ,当然还需要虚拟串口工具:Configure Virtual Serial P ...

  6. OLED液晶屏幕(0)自动获取12ic地址液晶屏幕

    . 烧录 串口可以看到输出的地址 #include <Wire.h> void setup(){ Wire.begin(); Serial.begin(9600); Serial.prin ...

  7. PHP 之Mysql优化

    一.建立索引 普通索引 index: 对关键字没有要求. 唯一索引 unique index: 要求关键字不能重复.同时增加唯一约束. 主键索引 primary key: 要求关键字不能重复,也不能为 ...

  8. Kubeadm证书过期时间调整

    kubeadm 默认证书为一年,一年过期后,会导致api service不可用,使用过程中会出现:x509: certificate has expired or is not yet valid. ...

  9. #C++初学记录(typedef和define)

    typedef的用法 typedef关键字可以用于给数据类型定义一个别名,即可以给long long 定义成ll,也可以给结构体定义,当你定义了一个结构体时,每次创建一个结构体都要使用struct+结 ...

  10. 第06组 Beta冲刺(3/5)

    队名:拾光组 组长博客链接 作业博客链接 团队项目情况 燃尽图(组内共享) 组长:宋奕 过去两天完成了哪些任务 继续维护后端代码 学习深入python 研究匿名拨打电话问题.套牌多结果处理问题 Git ...