jenkins pipline
def getHost(){
def remote = [:]
remote.name = 'server02'
remote.host = '39.19.90'
remote.user = 'root'
remote.port =
remote.password = '#########'
remote.allowAnyHosts = true
return remote
}
pipeline {
agent any
environment{
def server = ''
}
stages {
stage('init-server'){
steps {
script {
server = getHost()
}
}
}
stage('检出') {
steps {
sh "cd ~/cobbler.sysconfig/cobbler.identityserver; git pull;"
git url: 'https://github.com/cysnet/cobbler.identityserver.git', branch: 'master', credentialsId:'86a8ba78-9bb7-4a9b-bb53-3a77224c27ce'
sh "cp ~/cobbler.sysconfig/cobbler.identityserver/appsettings.json $WORKSPACE/Cobbler.IdentityServer/"
}
}
stage('docker清理') {
steps {
script{
image_name = sh(script: "docker images -a|grep 'chenyishi/cobbler.identityserver'| awk '{print \$1 }'", returnStdout: true).trim()
echo image_name
if (image_name!=null&&image_name!=""){
sh(script: "docker rmi chenyishi/cobbler.identityserver:1.0 --force")
}
}
script{
container_name = sh(script: "docker ps -a -f name=cobbler.identityserver -q", returnStdout: true).trim()
echo container_name
if (container_name!=null &&container_name!=""){
sh(script: "docker rm --force ${container_name}")
}
}
script{
image_name = sh(script: "docker images -f label=name=cobbler.identityserver -q", returnStdout: true).trim()
echo image_name
if (image_name!=null&&image_name!=""){
sh(script: "docker rmi ${image_name} --force")
}
}
}
}
stage('构建') {
steps {
sh "docker build --label name=cobbler.identityserver -t cobbler.identityserver:1.0 .;"
sh "docker login -u ##### -p #####; docker tag cobbler.identityserver:1.0 chenyishi/cobbler.identityserver:1.0"
}
}
stage('docker push') {
steps {
sh "docker push chenyishi/cobbler.identityserver:1.0"
}
}
stage('remote server docker run'){
steps {
script {
sshCommand remote: server, command: """
container_name=`docker ps -a -f name=cobbler.identityserver -q`;
if [ \$container_name ];then docker rm --force \$(docker ps -a -f name=cobbler.identityserver -q); fi;
image_name=`docker images -f "label=name=cobbler.identityserver" -q`;
if [ \$image_name ];then sudo docker rmi \$(docker images -f "label=name=cobbler.identityserver" -q); fi;
docker login -u ##### -p #######;
docker run --name cobbler.identityserver -d -p : chenyishi/cobbler.identityserver:1.0;
"""
}
}
}
}
}
jenkins pipline的更多相关文章
- jenkins pipline 几个注意细节
新建jenkins pipline 1)pipeline的脚本语法要正确,sonarqube的projectKey需要做相应的修改 2)先执行一次构建,会报错 3)进到jenkins workspac ...
- 持续集成工具之Jenkins pipline简单示例
前文我们主要聊了下jenkins的插件安装.用户及权限管理.邮件发送.配置凭证到gitlab上拉取项目和创建普通job:回顾请参考https://www.cnblogs.com/qiuhom-1874 ...
- ubuntu 16.04 jenkins pipline的实现 最终docker启动服务
准备工作:两台虚拟机A:192.168.1.60 B:192.168.1.61 C:一个存放代码的代码库(github)A:jenkins git docker openssh-server(ssh) ...
- jenkins pipline 和 jenkinsfile
Jenkins Pipeline(或简称为 "Pipeline")是一套插件,将持续交付的实现和实施集成到 Jenkins 中.Jenkins Pipeline 提供了一套可扩展的 ...
- jenkins pipline和jenkinsfile
Jenkins Pipeline(或简称为 "Pipeline")是一套插件,将持续交付的实现和实施集成到 Jenkins 中. Jenkins Pipeline 提供了一套可扩展 ...
- 使用Jenkins+Pipline 持构建自动化部署之安卓源码打包、测试、邮件通知
一.引言 Jenkins 2.x的精髓是Pipeline as Code,那为什么要用Pipeline呢?jenkins1.0也能实现自动化构建,但Pipeline能够将以前project中的配置信息 ...
- jenkins pipline 发送邮件
推荐一个好网站https://www.w3cschool.cn/jenkins/jenkins-e7bo28ol.html 获取git 用户信息// Get checkout output value ...
- Jenkins Pipline语法
引用自:http://baijiahao.baidu.com/s?id=1582812185263227836&wfr=spider&for=pc 引用自:https://www.cn ...
- jenkins pipline 用法收集
1.下载多个项目 node { stage('clone'){ dir('test1'){ checkout([$class: 'GitSCM', branches: [[name: '*/maste ...
随机推荐
- 先查询再插入,改为存储过程,java部分入参出参、mybatisxml【我】
先查询再插入,改为存储过程 create or replace procedure PRO_REVENUE_SI(l_p_cd in Varchar2, l_c_cd in Varchar2, l_p ...
- OWASP ZAP使用教程
一.安装 Windows下载下来的是exe的,双击就可以了! Linuxg下载下来的不是.sh就是tar.gz,这个就更加简单了. 唯一需要注意的是: Windows和Linux版本需要运行Java ...
- realsense 图片与点云数据采集
- Java8的时间日期API
原先的时间 api 大部分已经过时了 Date构造器 需要传入年月日 但是对时间的加减操作比较麻烦 Calenda 加减比较方便 使用 LocalDate. LocalTime. LocalDa ...
- 宣化上人:大佛顶首楞严经四种清净明诲浅释(1)(转自学佛网:http://www.xuefo.net/nr/article23/230609.html)
唐天竺·沙门般剌密帝译 宣化上人主讲 一九八三年四月十七日晚讲于万佛圣城 四种清净明诲,真实不虚 楞严经里的四种清净明诲:断淫.断杀.断偷.断妄,是息息相关的.若犯淫戒,就容易犯杀戒,也容易犯盗戒.妄 ...
- [转]Ubuntu 上创建常用磁盘阵列
链接地址:https://www.jianshu.com/p/9a458510593a
- 【Leetcode_easy】1047. Remove All Adjacent Duplicates In String
problem 1047. Remove All Adjacent Duplicates In String 参考 1. Leetcode_easy_1047. Remove All Adjacent ...
- 【Tools】PDF编辑软件-pdfelement 6.8 官网文件中文+破解版本
试用了下,感觉还不错分享给大家. 有币的求赏,小弟下载缺币.没币的从附件下载. 赏币地址:https://download.csdn.net/download/qq_18187161/10744059 ...
- 有关_meta内容(持续更新)
假设在models里创建了一个类:UserInfo model.UserInfo._meta.app_label #获取该类所在app的app名称 model.UserInfo._meta.model ...
- Net UI Spy工具:ManagedSpy
Net UI Spy工具:ManagedSpy 很久之前在接手一个大型的Winform项目的时候.有如下困难: 1,项目很大整个产品的Build由1400多个Project组成 2,产品的组件.控件太 ...