SpringBoot+Docker+Git+Jenkins实现简易的持续集成和持续部署
前言
本篇文章引导你使用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实现简易的持续集成和持续部署相关推荐
- Jenkins+Maven+Git搭建持续集成和自动化部署的配置手记 - passover【毕成功的博客】 - 51CTO技术博客...
Jenkins+Maven+Git搭建持续集成和自动化部署的配置手记 - passover[毕成功的博客] - 51CTO技术博客
- jenkins实现持续集成、持续部署
jenkins实现持续集成.持续部署 一.分析我们需要做什么才能实现持续集成.部署 1.分析jenkins需要帮我们做哪些内容 2.拆分需要实现的步骤 二.配置持续集成和部署 0.前置条件 1.实现第 ...
- 半天搭建你的Jenkins持续集成与自动化部署系统
前言 相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛.由于我们所做的系统业务复杂,系统庞大,设计到多个系统之间的合作,而核心系统更是采用分布式系统架构,由 ...
- 从服务器基础环境配置到搭建Docker+Gitlab+Gitlab Runner,完整介绍Spring Boot项目的持续集成与持续交付具体实现!
1. 序言 在大学的课程学习,非常注重团队协作的培养,在企业开发中,团队协作开发项目的场景更是甚多.另外,在当下的热门技术栈中,微服务开发模式.前后端分离开发模式逐渐盛行,Spring Boot.VU ...
- 持续集成与持续部署(三)——实现持续集成的效率工具对比之Jenkins、Travis CI、Circle CI和其他持续集成工具
持续集成与持续部署(三)--实现持续集成的效率工具对比之Jenkins.Travis CI.Circle CI和其他持续集成工具 效率工具对比 点击查看效率工具 1. Jenkins Jenkins, ...
- 【Jenkins】持续集成、持续交付与持续部署
持续集成.持续交付与持续部署,都是软件开发过程中的很好的实践. 一.持续部署 装修厨房 全部装好之后发现灯不亮,电路有问题:冷热水装反了,管路有问题.这些问题要解决就必须把地砖.墙砖拆掉--一个环节有 ...
- 持续集成与持续部署(五)03-TravisCI——Travis CI和Docker的持续集成之所使用的基础组件、dockerfile配置、docker部署脚本
持续集成与持续部署(五)03-TravisCI--Travis CI和Docker的持续集成之所使用的基础组件.dockerfile配置.docker部署脚本 所使用的基础组件 代码托管在Github ...
- TeamCity持续集成和持续交付Docker
原文地址:https://hub.docker.com/r/jetbrains/teamcity-server/ TeamCity服务器 - 强大的持续集成和持续交付功能 这是官方的JetBrains ...
- Jenkins学习总结(4)——持续集成,持续交付,持续部署之间的区别
经常会听到持续集成,持续交付,持续部署,三者究竟是什么,有何联系和区别呢?
最新文章
- linux远程安装本机软件,我的电脑怎样让对方远程装软件?
- 你可能不知道的5种 CSS 和 JS 的交互方式
- 使用scikit-learn进行预处理
- mac云显卡服务器_重磅!NVIDIA GeForce NOW登陆Mac:云显卡玩吃鸡逆天
- Python Module_sys/random
- python鸭制作类代码_Python动态语言与鸭子类型详解
- 机器学习实战11-训练深层神经网络
- java levenshtein算法_DNA分析 拼字检查 语音辨识 抄袭侦测 - Levenshtein算法
- java上机实验报告_javaweb上机实验报告(学生管理系统)
- 洛谷P4012 深海机器人问题(费用流)
- 数控仿真模拟Keller CNC SYMplus v5.0-ISO
- 云计算安全知识CCSK V4 知多少
- 魔兽争霸---兽族打法
- 十三个世界著名的定律
- java add方法怎么用_Java ArrayList add() 方法
- pandas文件保存操作
- 有理样条曲线学习笔记(一)
- android微信下拉出现小程序,仿新版微信的小程序下拉栏
- 信息学奥赛一本通1055:判断闰年
- vue 报错vue : 无法加载文件 D:\wjx_tools\node\node_global\vue.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsof
热门文章
- Ubuntu 14.04上安装pip3/numpy/matplotlib/scipy操作步骤
- OpenCV代码提取:flip函数的实现
- matlab神经网络工具箱函数汇总
- 【Go】Go基础(三):基本结构和基本数据类型
- 【POCO】POCO学习总结(四)——MinGW编译poco
- java 获取已有字体,java获取本机全部可用字体
- 大学生如何合理使用计算机,大学生计算机合理使用引导分析
- Java项目:健身俱乐部管理系统(java+SSM+Mysql+Jsp)
- 使用HTML CSS完成初步的页面,任务九:使用HTML/CSS实现一个复杂页面(示例代码)
- mimo系统matlab,OFDM—MIMO系统的matlab程序