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的更多相关文章

  1. jenkins pipline 几个注意细节

    新建jenkins pipline 1)pipeline的脚本语法要正确,sonarqube的projectKey需要做相应的修改 2)先执行一次构建,会报错 3)进到jenkins workspac ...

  2. 持续集成工具之Jenkins pipline简单示例

    前文我们主要聊了下jenkins的插件安装.用户及权限管理.邮件发送.配置凭证到gitlab上拉取项目和创建普通job:回顾请参考https://www.cnblogs.com/qiuhom-1874 ...

  3. 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) ...

  4. jenkins pipline 和 jenkinsfile

    Jenkins Pipeline(或简称为 "Pipeline")是一套插件,将持续交付的实现和实施集成到 Jenkins 中.Jenkins Pipeline 提供了一套可扩展的 ...

  5. jenkins pipline和jenkinsfile

    Jenkins Pipeline(或简称为 "Pipeline")是一套插件,将持续交付的实现和实施集成到 Jenkins 中. Jenkins Pipeline 提供了一套可扩展 ...

  6. 使用Jenkins+Pipline 持构建自动化部署之安卓源码打包、测试、邮件通知

    一.引言 Jenkins 2.x的精髓是Pipeline as Code,那为什么要用Pipeline呢?jenkins1.0也能实现自动化构建,但Pipeline能够将以前project中的配置信息 ...

  7. jenkins pipline 发送邮件

    推荐一个好网站https://www.w3cschool.cn/jenkins/jenkins-e7bo28ol.html 获取git 用户信息// Get checkout output value ...

  8. Jenkins Pipline语法

    引用自:http://baijiahao.baidu.com/s?id=1582812185263227836&wfr=spider&for=pc 引用自:https://www.cn ...

  9. jenkins pipline 用法收集

    1.下载多个项目 node { stage('clone'){ dir('test1'){ checkout([$class: 'GitSCM', branches: [[name: '*/maste ...

随机推荐

  1. Flutter -------- Http库 网络请求封装(HttpController)

    http库 再次封装的网络请求类 HttpController 1.添加依赖 dependencies: http: ^0.12.0 #latest version 2.导入库 import 'pac ...

  2. MWC飞控增加声纳定高的方法(转)

    源: MWC飞控增加声纳定高的方法

  3. Microsoft OA

    Given a string S consisting of N lowercase letters, return the minimum number of letters that must b ...

  4. flutter DataTable数据表格

    数据表显示原始数据集.它们通常出现在桌面企业产品中.DataTable Widget实现这个组件 文档:https://api.flutter.dev/flutter/material/DataTab ...

  5. 品优购商城项目(二)mybatis分页插件

    品优购商城项目第二天,使用mybatis分页插件实现分页.主要实现的是 SSM整合mybatis分页. 一.引用mybatis分页插件 SqlMapConfig.xml <?xml versio ...

  6. IFC构件位置数据与revit模型中对应构件位置数据对比

    IFC构件位置数据与revit模型中对应构件位置数据对比

  7. ByteBuffer使用实例

    ByteBuffer作为JDK的字节流处理对象,这里举个小例子说明下用法,直接上代码: package com.wlf.netty.nettyserver; import org.junit.Asse ...

  8. 背诵四种清净明诲断淫(愿众生断淫得究竟解脱) (转自学佛网:http://www.xuefo.net/nr/article50/495158.html)

    一.为什么要戒邪淫.断淫欲 <寿康宝鉴>:盖淫念一生,诸念皆起.邪缘未凑生妄心;勾引无计,生机械心;少有阻碍,生嗔恨心;欲情颠倒,生贪着心;羡人有之,生嫉妒心;夺人之爱,生杀害心.廉耻丧尽 ...

  9. [转]Ubuntu 上创建常用磁盘阵列

    链接地址:https://www.jianshu.com/p/9a458510593a

  10. RabbitMQ官方教程二 Work Queues(GOLANG语言实现)

    RabbitMQ官方教程二 Work Queues(GOLANG语言实现) 在第一个教程中,我们编写了程序来发送和接收来自命名队列的消息. 在这一部分中,我们将创建一个工作队列,该队列将用于在多个wo ...