前言

本篇文章引导你使用Jenkins部署[SpringBoot项目],同时使用Docker和Git实现简单的持续集成和持续部署。(项目地址:sso-merryyou)

流程图如下:

push代码到Github触发WebHook。(因网络原因,本篇使用gitee)
Jenkins从仓库拉去代码
mavem构建项目
代码静态分析
单元测试
build镜像
push镜像到镜像仓库(本篇使用的镜像仓库为网易镜像仓库)
更新服务
Jenkins安装

下载jenkins

从https://jenkins.io/download/下载对应的jenkins

初始化密码

访问本地:http://localhost:8080输入密码

选择插件

进入用户自定义插件界面,选择第二个(因为我们本次构建使用的为Pipelines)

勾选与Pipelines相关的插件

等待插件安装完成

配置用户名和密码

全局配置

系统管理-》全局工具配置 配置Git,JDK和Maven

安全配置

系统管理-》全局安全配置

勾选Allow anonymous read access
取消防止跨站点请求伪造

新建任务

新建任务-》流水线

构建脚本

勾选触发远程构建 (WebHooks触发地址),填写简单的Pipeline script

#!groovy
pipeline{agent anystages {stage('test'){steps {echo "hello world"}}            }
}

测试脚本

立即构建

控制台输出

gitee集成WebHooks

添加SSH公匙

配置WebHooks

使用natapp实现内网穿透

修改脚本

修改Pipeline script

#!groovy
pipeline{agent any//定义仓库地址environment {REPOSITORY="https://gitee.com/merryyou/sso-merryyou.git"}stages {stage('获取代码'){steps {echo "start fetch code from git:${REPOSITORY}"//清空当前目录deleteDir()//拉去代码    git "${REPOSITORY}"}}stage('代码静态检查'){steps {//伪代码检查echo "start code check"}}        stage('编译+单元测试'){steps {echo "start compile"//切换目录dir('sso-client1') {//重新打包bat 'mvn -Dmaven.test.skip=true -U clean install'}}}stage('构建镜像'){steps {echo "start build image"dir('sso-client1') {//build镜像bat 'docker build -t hub.c.163.com/longfeizheng/sso-client1:1.0 .'//登录163云仓库bat 'docker login -u longfei_zheng@163.com -p password hub.c.163.com'//推送镜像到163仓库bat 'docker push hub.c.163.com/longfeizheng/sso-client1:1.0'}}}stage('启动服务'){steps {echo "start sso-merryyou"//重启服务bat 'docker-compose up -d --build'}}                }
}

Pipeline的几个基本概念:

Stage: 阶段,一个Pipeline可以划分为若干个Stage,每个Stage代表一组操作。注意,Stage是一个逻辑分组的概念,可以跨多个Node。

Node: 节点,一个Node就是一个Jenkins节点,或者是Master,或者是Agent,是执行Step的具体运行期环境。

Step: 步骤,Step是最基本的操作单元,小到创建一个目录,大到构建一个Docker镜像,由各类Jenkins Plugin提供。

更多Pipeline语法参考:pipeline 语法详解

测试

docker-compose up -d 启动服务

访问http://sso-taobao:8083/client1登录

修改内容效果如下:

更多效果图

代码下载

github:https://github.com/longfeizheng/sso-merryyou
gitee:https://gitee.com/merryyou/sso-merryyou
文章来源:https://my.oschina.net/merryyou/blog/1799317

SpringBoot+Docker+Git+Jenkins实现简易的持续集成和持续部署相关推荐

  1. Jenkins+Maven+Git搭建持续集成和自动化部署的配置手记 - passover【毕成功的博客】 - 51CTO技术博客...

    Jenkins+Maven+Git搭建持续集成和自动化部署的配置手记 - passover[毕成功的博客] - 51CTO技术博客

  2. jenkins实现持续集成、持续部署

    jenkins实现持续集成.持续部署 一.分析我们需要做什么才能实现持续集成.部署 1.分析jenkins需要帮我们做哪些内容 2.拆分需要实现的步骤 二.配置持续集成和部署 0.前置条件 1.实现第 ...

  3. 半天搭建你的Jenkins持续集成与自动化部署系统

    前言 相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛.由于我们所做的系统业务复杂,系统庞大,设计到多个系统之间的合作,而核心系统更是采用分布式系统架构,由 ...

  4. 从服务器基础环境配置到搭建Docker+Gitlab+Gitlab Runner,完整介绍Spring Boot项目的持续集成与持续交付具体实现!

    1. 序言 在大学的课程学习,非常注重团队协作的培养,在企业开发中,团队协作开发项目的场景更是甚多.另外,在当下的热门技术栈中,微服务开发模式.前后端分离开发模式逐渐盛行,Spring Boot.VU ...

  5. 持续集成与持续部署(三)——实现持续集成的效率工具对比之Jenkins、Travis CI、Circle CI和其他持续集成工具

    持续集成与持续部署(三)--实现持续集成的效率工具对比之Jenkins.Travis CI.Circle CI和其他持续集成工具 效率工具对比 点击查看效率工具 1. Jenkins Jenkins, ...

  6. 【Jenkins】持续集成、持续交付与持续部署

    持续集成.持续交付与持续部署,都是软件开发过程中的很好的实践. 一.持续部署 装修厨房 全部装好之后发现灯不亮,电路有问题:冷热水装反了,管路有问题.这些问题要解决就必须把地砖.墙砖拆掉--一个环节有 ...

  7. 持续集成与持续部署(五)03-TravisCI——Travis CI和Docker的持续集成之所使用的基础组件、dockerfile配置、docker部署脚本

    持续集成与持续部署(五)03-TravisCI--Travis CI和Docker的持续集成之所使用的基础组件.dockerfile配置.docker部署脚本 所使用的基础组件 代码托管在Github ...

  8. TeamCity持续集成和持续交付Docker

    原文地址:https://hub.docker.com/r/jetbrains/teamcity-server/ TeamCity服务器 - 强大的持续集成和持续交付功能 这是官方的JetBrains ...

  9. Jenkins学习总结(4)——持续集成,持续交付,持续部署之间的区别

    经常会听到持续集成,持续交付,持续部署,三者究竟是什么,有何联系和区别呢?

最新文章

  1. linux远程安装本机软件,我的电脑怎样让对方远程装软件?
  2. 你可能不知道的5种 CSS 和 JS 的交互方式
  3. 使用scikit-learn进行预处理
  4. mac云显卡服务器_重磅!NVIDIA GeForce NOW登陆Mac:云显卡玩吃鸡逆天
  5. Python Module_sys/random
  6. python鸭制作类代码_Python动态语言与鸭子类型详解
  7. 机器学习实战11-训练深层神经网络
  8. java levenshtein算法_DNA分析 拼字检查 语音辨识 抄袭侦测 - Levenshtein算法
  9. java上机实验报告_javaweb上机实验报告(学生管理系统)
  10. 洛谷P4012 深海机器人问题(费用流)
  11. 数控仿真模拟Keller CNC SYMplus v5.0-ISO
  12. 云计算安全知识CCSK V4 知多少
  13. 魔兽争霸---兽族打法
  14. 十三个世界著名的定律
  15. java add方法怎么用_Java ArrayList add() 方法
  16. pandas文件保存操作
  17. 有理样条曲线学习笔记(一)
  18. android微信下拉出现小程序,仿新版微信的小程序下拉栏
  19. 信息学奥赛一本通1055:判断闰年
  20. vue 报错vue : 无法加载文件 D:\wjx_tools\node\node_global\vue.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsof

热门文章

  1. Ubuntu 14.04上安装pip3/numpy/matplotlib/scipy操作步骤
  2. OpenCV代码提取:flip函数的实现
  3. matlab神经网络工具箱函数汇总
  4. 【Go】Go基础(三):基本结构和基本数据类型
  5. 【POCO】POCO学习总结(四)——MinGW编译poco
  6. java 获取已有字体,java获取本机全部可用字体
  7. 大学生如何合理使用计算机,大学生计算机合理使用引导分析
  8. Java项目:健身俱乐部管理系统(java+SSM+Mysql+Jsp)
  9. 使用HTML CSS完成初步的页面,任务九:使用HTML/CSS实现一个复杂页面(示例代码)
  10. mimo系统matlab,OFDM—MIMO系统的matlab程序