dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2139
  • 铜币12159枚
  • 威望5506点
  • 银元145个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
阅读:705回复:1

使用 jenkins 与 docker 完成 java 项目持续集成

楼主#
更多 发布于:2017-05-18 09:55
典型的 JAVA项目持续集成场景
1. 思维导图

2. 需要的组件
jenkins
git
maven (java 构建工具)
harbor (docker 仓库)
tomcat (docker 镜像)

目标
1. 借助jenkins 平台,使用 maven工具 自动构建 java项目,并将 war包附加到新版本的 docker (tomcat)镜像。
2. 配合,harbor 仓库,rancher 容器平台,完成'自动化运维'工作(程序发布);

基本流程
1. 当 git 上有新的 push产生时,触发jenkins构建任务;
2. jenkins 使用 git插件pull项目代码,并使用 maven插件完成如 build/ make/ test 等上线前的准备工作;
3. jenkins 调用 shell脚本插件,将编译后的文件(及配置文件),附加到 新的 docker (tomcat)镜像;
4. 将 docker 镜像推送到 harbor 仓库;
5. 使用 rancher 平台提供的 web/cli接口, 完成项目的更新与升级;

持续集成的概念

持续集成,Continuous integration ,简称CI
    它倡导团队开发成员必须经常集成他们的工作,甚至每天都可能发生多次集成。而每次的集成都是通过自动化的构建来验证,包括自动编译、测试和发布,从而尽快地发现集成错误,让团队能够更快的开发产品。

持续集成的特点

    它是一个自动化的周期性的集成测试过程,从拉取代码、编译构建、运行测试、结果记录、测试统计等都是自动完成的,无需人工干预;
    需要有专门的集成服务器来执行集成构建;
    需要有代码托管工具支持;

持续集成的作用
    保证团队开发人员提交代码的质量,减轻了软件发布时的压力;
    持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,有利于减少重复过程以节省时间、费用和工作量;


参考: Docker如何实现CI持续集成部署
         Docker持续部署图文详解
         使用Rancher和DroneCI建立超高速Docker CI/CD流水线

#
技术QQ群 https://zongming.net/app-index-run?app=qqun
dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2139
  • 铜币12159枚
  • 威望5506点
  • 银元145个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
沙发#
发布于:2017-12-26 14:03
java 项目CI化 Demo
环境
Demo 项目irm ,包括:
irm-bms 后台,
irm-web 前台,
irm-py 中间件,
irm-db mysql 数据库,
irm-rds redis 非关系数据库,
irm-proxy 反向代理;

rancher 平台

图片:java-ci-demo.png



docker 镜像
tree -L 2 irm/
irm/
├── docker-compose.yml
├── irm-bms
│   ├── conf
│   ├── Dockerfile
│   ├── src
│   └── war2image.sh
├── irm-py
│   ├── conf
│   ├── Dockerfile
│   ├── src
│   └── war2image.sh
├── irm-web
│   ├── conf
│   ├── Dockerfile
│   ├── src
│   └── war2image.sh
└── proxy
    ├── conf
    └── Dockerfile

11 directories, 8 files
技术QQ群 https://zongming.net/app-index-run?app=qqun
游客

返回顶部