pipline中替换tag变量
实验架构:192.168.0.96 gitlab192.168.0.97 jenkins192.168.0.98 harbor、docker集群说明:下面代码编译镜像那一步的代码必须靠左,目的是不要有空格,否则报错,deploy那一步也必须是那种格式,否则报错安装完jenkins后首先生成pipeline可以用的git链接地址pipeline {agent anystages {stage('git checkout'){steps {echo 'git clone'checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'c32a3a24-2c9d-4c8d-b456-9d6d0badf3a2', url: 'http://192.168.0.96:8081/zihao/test.git']]])}}stage('maven build'){steps {echo 'maven build'sh '''export JAVA_HOME=/usr/local/jdk1.8.0_171//usr/local/apache-maven-3.5.4/bin/mvn clean package -Dmaven.test.skip=true'''}}stage('docker build and push images'){steps { echo 'docker build and push images' sh ''' REPOSITORY=192.168.0.98:5000/library/solo/solo:${Tag} cat >Dockerfile<<EOF FROM 192.168.0.98:5000/library/tomcat-85:latest RUN rm -rf /usr/local/tomcat/webapps/ROOT/ COPY target/*.war /usr/local/tomcat/webapps/ROOT.war WORKDIR /usr/local/tomcat EXPOSE 8080 CMD ["./bin/catalina.sh", "run"] EOF docker build -t $REPOSITORY . docker login -u admin -p Harbor12345 192.168.0.98:5000 docker push $REPOSITORY '''}}stage('deploy'){steps { echo 'deploy' sh ''' REPOSITORY=192.168.0.98:5000/library/solo/solo:${Tag} cat >deployment.yaml<<EOF apiVersion: extensions/v1beta1 kind: Deployment metadata:name: http-test-dm spec:replicas: 1template:metadata:labels:name: http-test-dmspec:containers:- name: http-test-conimage: $REPOSITORYimagePullPolicy: IfNotPresentports:- containerPort: 80 EOF '''}}} }把上面的$REPOSITORY镜像替换成真实的镜像,执行完查看结果如下:[root@bogon ~]# ls /root/.jenkins/workspace/pipline-test/ CHANGE_LOGS.html deployment.yaml Dockerfile package.json PULL_REQUEST_TEMPLATE.md scripts 说明.htm CODE_OF_CONDUCT.md deploy.sh gulpfile.js package-lock.json README.md src CONTRIBUTING.md docker-compose.yml LICENSE pom.xml read.txt target [root@bogon ~]# cat /root/.jenkins/workspace/pipline-test/deployment.yaml apiVersion: extensions/v1beta1 kind: Deployment metadata:name: http-test-dm spec:replicas: 1template:metadata:labels:name: http-test-dmspec:containers:- name: http-test-conimage: 192.168.0.98:5000/library/solo/solo:1.0.2imagePullPolicy: IfNotPresentports:- containerPort: 80说明:远程执行命令前提需要安装ssh agent插件,现在ssh agent的认证,已不支持明文用户密码,而只能用加密方式实现。所以先在jenknis和docker集群之间实现ssh免密码rsa证书登陆。私钥放jenkins,公钥放在docker集群,然后,将私钥拿出来,写入到jenkins凭据参照:https://blog.csdn.net/weixin_34067980/article/details/86444168
参照视频:链接:https://pan.baidu.com/s/10qtI5BlNFM2A6bMkR7FEEA 提取码:0pwt
脚本参照:https://blog.csdn.net/jackyzhousales/article/details/81713004https://blog.csdn.net/a1010256340/article/details/83989059生成pipeline可以用的git链接地址参照:https://www.cnblogs.com/FRESHMANS/p/8184874.html
转载于:https://www.cnblogs.com/effortsing/p/10470163.html
pipline中替换tag变量相关推荐
- shell中的命令替换和变量替换
一.命令替换 可以用'command', 也可以用$(command). 二者是有区别的,先看一下'command'(注意:这里不是引号,而反引号) 1. `command' 用来做命令替换 2. $ ...
- Java中的宏变量,宏替换详解。
转载自 Java中的宏变量,宏替换详解. 群友在微信群讨论的一个话题,有点意思,特拿出来分享一下. 输出true false 来看下面这段程序,和群友分享的大致一样. public static vo ...
- linux中对shell变量内容的修改和替换
鸟哥私房菜中,对这一内容的描述,简直让人看不懂,好不容易找来文章可以帮助理解下. linux中对shell变量内容的修改和替换 1.变量内容修改 file=/dir1/dir2/dir3/my.fil ...
- linux 变量替换字符串,shell中常用的变量处理、字符串操作(之一)
在shell中,当我们已经获取到某个变量的变量值的时候,可能还需要对变量值进行一定的处理,才能到我们最终想要的结果,今天我们就来聊聊shell中常见的变量处理方法,我们通常会对变量进行如下处理. 一. ...
- 线程池中使用条件变量和信号量的性能比较
2019独角兽企业重金招聘Python工程师标准>>> 面试的时候经常被问到互斥量,条件变量和信号量之间的问题.比如前几天华为面试就被问到互斥量和信号量的区别,说到互斥量也可以使用一 ...
- python重命名文件pycharm_Python中批量修改变量名太费劲?Pycharm中使用重命名一次搞定...
标签:rename current 变量 阅读 tor 小伙伴 search 其他 就是如果程序中有一个变量被用得比较多,但名字起得不是很好,导致其他阅读程序的人搞不清 ...
- php中的替换函数,php字符串中替换函数是什么
php字符串中替换函数有两种,分别是:1.substr_replace函数,用于把字符串的一部分替换为另一个字符串:2.str_replace函数,能够使用一个字符串替换字符串中的另一些字符. 本文操 ...
- 在docker镜像中加入环境变量
原文链接 前言 reference:https://vsupalov.com/docker-build-time-env-values/ 很多时候,我们需要在docker镜像中加入环境变量,本人了解的 ...
- java怎么给类中的私有变量赋值_Java核心技术笔记分享------第二章 类与对象
对象与类 一.面向对象思想的概述 1>面向对象与面向过程: 二者都是一种思想,面向对象是相对于面向过程而言的.面向过程强调的是功能行为.面向对象,将功能封装进对象,强调具备了功能的对象. 面向对 ...
最新文章
- POJ 1552 Doubles (C++ STL set使用)
- 需求入门 - 获取需求方法:Nine Boxes
- 批量处理---提高处理速度
- 用RPC OVER HTTPS发布Exchange(续)
- 括号配对问题----栈模拟
- 怎么判断浮点数的有效位数_JavaScript的数据类型及判断
- 超详细!联想小新700黑苹果双系统完整教程(1)
- html泰勒展开,【转载】泰勒展开式
- CnOpenData中国高新技术企业专利统计数据
- 如何在scrapy框架里进行调试嘞
- 计算机rom和硬盘,都是存储器,但RAM、ROM、闪存、硬盘怎么分?
- iPhone销量下降,这两种方法可以把Android和iPhone手机投屏到电脑上!
- 国内如何下载并使用LINE(免费提供apk安装包)
- 昆明理工大学计算机毕业论文,论文的文本格式和装订顺序-昆明理工大学教务处.doc...
- ubuntu下载谷歌云盘大文件
- 三极管饱和区的详细解释
- 一眼就会table隔行换色、table表头固定、隔行色、鼠标移动行换色
- LiveGBS GB28181流媒体服务-产品介绍及相关资源
- Python多线程 坑Unhandled exception in thread started by Error in sys.excepthook
- python教程cos_带有Python示例的math.cos()方法
热门文章
- 某企业管理软件开发公司校园招聘的小组讨论面试题
- jsonobject修改key的值_修改JSONArray里所有key的值
- cname 别名记录 解析过程_云解析是什么?需要购买吗?
- 计算机分级时无法度量视频播放,Win7 64位系统电脑评分出现“无法度量视频播放性能”怎么解决...
- mysql数据库 on 命令_MySql 数据库基础命令
- 初始化mysql的数据库失败_初始化mysql的数据库失败怎么办
- python学习-字典(哈希表、创建、插值、取值、keys、values、items、copy、fromkeys)
- oracle删除unique key,概述Oracle Unique约束
- latex 不等于_生活中养成这8个习惯,就算不运动,照样瘦!
- iphone全部机型_苹果12,十三岁iPhone最鸡贼的一次发布会