jenkins多分支流水线部署

jenkins多分支流水线部署

本文将利用jenkins的多分支流水线的部署方式,并结合docker实现根据branch和tag部署及回滚

文中演示的项目地址:
https://github.com/weiyangtang/jenkinsDockerExample

https://github.com/weiyangtang/jenkinsDockerExample.git

jenkinsfileDockerfile在文末附录
在这里插入图片描述

  1. 创建一个多分支流水线项目

在这里插入图片描述2. 配置

  • 显示名称(不太重要)

  • 分支源(非常重要),添加Git远程仓库的url,选择用户凭证(username/password, ssh private key),行为选择发现分支、发现标签

在这里插入图片描述

  • 填写jenkinsfile在git仓库的相对路径
    在这里插入图片描述

  • 保存

  1. 立即扫描多分支流水线在这里插入图片描述

  2. 选择项目的版本号tag(标签),本文以1.1为例开始部署
    在这里插入图片描述在这里插入图片描述

  3. 查看运行日志

    在这里插入图片描述6. 各阶段的耗时

在这里插入图片描述

jenkinsfile

#!/usr/bin/env groovy

final def releaseTag = (env.TAG_NAME ?: env.BRANCH_NAME).replace("/", "-")

pipeline {

    agent any

    tools {
        maven 'maven3'
    }


    stages {
        stage("maven 编译") {
            steps {
                echo "releaseTag:${releaseTag}"
                echo 'Building..'
                sh 'mvn clean package -Dmaven.test.skip'
            }
        }
        stage('镜像编译') {
            steps {
                echo 'image build'
                sh "docker build -f ./src/main/docker/Dockerfile -t tangweiyang/jenkinsdocker:${releaseTag} . "
            }
        }
        stage('镜像发布') {
            steps {
                echo 'image push docker hub'
                sh "docker push tangweiyang/jenkinsdocker:${releaseTag} "
            }
        }
        stage('停止旧容器') {
            steps {
                sh '''             
                        docker rm -f jenkinsdocker &> /dev/null                  
                   '''
            }
        }
        stage('部署') {
            steps {
                echo 'deloy'
                sh "docker run -it -d -p 8081:80 --name jenkinsdocker tangweiyang/jenkinsdocker:${releaseTag}"
            }
        }
    }
}

Dockerfile

FROM openjdk:8u171-jre-alpine
ENV JAR_NAME=jenkinsDocker-1.0-SNAPSHOT.jar
COPY ./target/$JAR_NAME  /apps/srv/instance/$JAR_NAME
EXPOSE 80
#ENTRYPOINT ["java","-jar","/apps/srv/instance/jenkinsDocker-1.0-SNAPSHOT.jar","--server.port=80"]
ENTRYPOINT java -jar /apps/srv/instance/$JAR_NAME --server.port=80
  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值