avatar

目录
Jenkins + Docker自动化部署、管理springboot项目

应用场景
持续集成、持续交付、持续部署

持续集成、持续交付、持续部署

持续集成(Continuous Integration)

持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。

持续交付(Continuous Delivery)

持续交付在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的「类生产环境」(production-like environments)中。比如,我们完成单元测试后,可以把代码部署到连接数据库的 Staging 环境中更多的测试。如果代码没有问题,可以继续手动部署到生产环境中。

持续部署(Continuous Deployment)

持续部署则是在持续交付的基础上,把部署到生产环境的过程自动化。 我个人觉得持续集成、持续交付、持续部署非常值得推广。开发过程中最怕集成时遇到问题导致返工,而持续集成、持续交付、持续部署恰恰可以早发现早解决,从而可以避免这个问题。

DevOps(Development and Operations)

DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。 它是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。 它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运维工作必须紧密合作。

实验环境

编号 环境名 备注
1 Win10 VMware Workstation11
2 虚拟机 OS: CentOS Linux release 7.9.2009 (Core) 两个,主从关系。
3 JDK1.8
4 Apache-tomcat-9.0.50 用于启动 jenkins.war
5 Tengine-2.3.3 Nginx Plus
6 MySQL5.7
7 Apache-maven-3.8.1 用于构建 springboot
8 git version 1.8.3.1 用于代码拉取
9 node-v12.12.0 用于构建 vue-cli
10 Docker version 20.10.7, build f0df350
11 Jenkins 2.289.2
12 Portainer(Docker 管理工具)
13 SpringBoot2 项目 项目名称: auto-deploy-demo

保持项目文件夹、项目名、Jenkins 项目名及 docker 镜像名一致,这里的项目名为auto-deploy-demo

需求分析

  • 代码 push 到 Git 仓库上后,通过 Jenkins 构建 jar 包
  • Jenkins 构建 jar 包成功后,自动触发 docker 镜像构建,并将服务的端口从容器映射到实体机

持续更新中…

持续更新中…

持续更新中…

参考资料

文章作者: Bill
文章链接: http://blog.webpro.ltd/2021/07/24/jenkins-docker-auto-deploy-springboot/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Bill's blog

评论