jenkins多分支流水线部署

约定不等于承诺〃 2023-02-28 05:39 48阅读 0赞

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

  1. #!/usr/bin/env groovy
  2. final def releaseTag = (env.TAG_NAME ?: env.BRANCH_NAME).replace("/", "-")
  3. pipeline {
  4. agent any
  5. tools {
  6. maven 'maven3'
  7. }
  8. stages {
  9. stage("maven 编译") {
  10. steps {
  11. echo "releaseTag:${releaseTag}"
  12. echo 'Building..'
  13. sh 'mvn clean package -Dmaven.test.skip'
  14. }
  15. }
  16. stage('镜像编译') {
  17. steps {
  18. echo 'image build'
  19. sh "docker build -f ./src/main/docker/Dockerfile -t tangweiyang/jenkinsdocker:${releaseTag} . "
  20. }
  21. }
  22. stage('镜像发布') {
  23. steps {
  24. echo 'image push docker hub'
  25. sh "docker push tangweiyang/jenkinsdocker:${releaseTag} "
  26. }
  27. }
  28. stage('停止旧容器') {
  29. steps {
  30. sh '''
  31. docker rm -f jenkinsdocker &> /dev/null
  32. '''
  33. }
  34. }
  35. stage('部署') {
  36. steps {
  37. echo 'deloy'
  38. sh "docker run -it -d -p 8081:80 --name jenkinsdocker tangweiyang/jenkinsdocker:${releaseTag}"
  39. }
  40. }
  41. }
  42. }

Dockerfile

  1. FROM openjdk:8u171-jre-alpine
  2. ENV JAR_NAME=jenkinsDocker-1.0-SNAPSHOT.jar
  3. COPY ./target/$JAR_NAME /apps/srv/instance/$JAR_NAME
  4. EXPOSE 80
  5. #ENTRYPOINT ["java","-jar","/apps/srv/instance/jenkinsDocker-1.0-SNAPSHOT.jar","--server.port=80"]
  6. ENTRYPOINT java -jar /apps/srv/instance/$JAR_NAME --server.port=80

发表评论

表情:
评论列表 (有 0 条评论,48人围观)

还没有评论,来说两句吧...

相关阅读