1. 首页
  2. IT资讯

别用 Dockerfile 部署 Spring Boot 啦!教你如何两步搞定

“u003Cdivu003Eu003Cblockquoteu003Eu003Cpu003E转载:https:u002Fu002Fmp.weixin.qq.comu002Fsu002FZqWktjLUOzHNKOGE6BfHRAu003Cu002Fpu003Eu003Cpu003E作者:江南一点雨u003Cu002Fpu003Eu003Cu002Fblockquoteu003Eu003Cpu003E今天想和大家聊一聊另外一种方案 u003Cstrongu003EJibu003Cu002Fstrongu003E,这是谷歌开源的一个容器化运行方案,使用它我们将 Spring Boot 进行容器化部署只要两步:u003Cu002Fpu003Eu003Cul class=”list-paddingleft-2″u003Eu003Cliu003E第一步配置 Maven Pluginu003Cu002Fliu003Eu003Cliu003E第二步构建u003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpu003E我们一起来看看。u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003EJibu003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003E在之前一篇文章中,我们将 Spring Boot 项目进行容器化部署,要求开发人员要有一定的 Docker 技能作为支撑,然而在实际开发中,并非每个人都是 Docker 专家,或者说会用 Docker。u003Cu002Fpu003Eu003Cpu003E有鉴于此,Google 搞出来一个 Jib,使 Spring Boot 容器化部署变得更加简便,开发人员可以不需要任何 Docker 相关的技能,就能将 Spring Boot 项目构建成 Docker 中的镜像,而且还可以“顺便”将镜像 push 到 register 上,极大的简化了部署过程。u003Cu002Fpu003Eu003Cpu003EJib 使用 Java 开发,使用也非常简单,可以作为 Maven 或者 Gradle 的插件直接集成到我们的项目中。它利用镜像分层和注册表缓存来实现快速、增量的构建。Jib 会自动读取项目的构建配置,代码组织到不同的层(依赖项、资源、类)中,然后它只会重新构建和推送发生变更的层。在项目进行快速迭代时,Jib 只将发生变更的层推送到 registers 来缩短构建时间。u003Cu002Fpu003Eu003Cpu003E好了,大致了解了 Jib 之后,接下来我们来看看 Jib 要怎么使用。u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E准备工作u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003EJib 可以直接将构建好的镜像 push 到 registers 上,如果公司有自己的私有镜像站的话,可以直接推送到私有镜像站上,本文我就将构建好的镜像推送到官方的 Docker Hub 上,因此需要大家提前准备一个 Docker Hub 的账号,账号大家可以直接去 Docker Hub 上面注册(https:u002Fu002Fhub.docker.comu002F),大家要是对 Docker Hub 这些东西不了解,可以在公众号后台回复 docker,获取松哥自制的 Docker 教程。u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E牛刀小试u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003E首先我们来创建一个 Spring Boot 工程,创建时只需要添加一个 Web 依赖即可:u003Cu002Fpu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F8c19b214cd484b95835136dca75101ff” img_width=”871″ img_height=”570″ alt=”别用 Dockerfile 部署 Spring Boot 啦!教你如何两步搞定” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cpu003E项目创建成功后,添加一个 HelloController 用来做测试:u003Cu002Fpu003Eu003Cpu003E然后,在 pom.xml 中添加上 Jib 的插件,如下:u003Cu002Fpu003Eu003Cpu003E关于这段配置,我说如下几点:u003Cu002Fpu003Eu003Col start=”1″u003Eu003Cliu003E首先就是版本号的问题,我这里使用的是 1.7.0 ,网上有的教程比较老,用的 0.x 的版本,老的版本在配置 Docker 认证的时候非常麻烦,所以版本这块建议大家使用当前最新版。u003Cu002Fliu003Eu003Cliu003Efrom 中的配置表示本镜像构建所基于的根镜像为 openjdk:alpineu003Cu002Fliu003Eu003Cliu003Eto 中的配置表示本镜像构建完成后,要发布到哪里去,如果是发布到私有镜像站,就写自己私有镜像站的地址,如果是发布到 Docker Hub 上,就参考我这里的写法 docker.iou002Fwongsungu002Fdockerjib,其中 wongsung 表示你在 Docker Hub 上注册的用户名,dockerjib 表示你镜像的名字,可以随意取。u003Cu002Fliu003Eu003Cliu003Etags 中配置的是自己镜像的版本。u003Cu002Fliu003Eu003Cliu003Eauth 中配置你在 Docker Hub 上的用户名u002F密码。u003Cu002Fliu003Eu003Cliu003Eexecutions 节点中的就是常规配置了,我就不再多说了。u003Cu002Fliu003Eu003Cu002Folu003Eu003Cpu003E配置完成后,在命令行执行如下命令将当前下项目构建成一个 Docker 镜像并 push 到 Docker Hub:u003Cu002Fpu003Eu003Cpu003E构建完成后,我们在 Docker Hub 上就能看到自己的镜像了:u003Cu002Fpu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002Fpgc-imageu002Feaa095d1581c402c8f07539589d5a336″ img_width=”737″ img_height=”234″ alt=”别用 Dockerfile 部署 Spring Boot 啦!教你如何两步搞定” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cpu003E接下来,启动 Docker ,在 Docker 中执行如下命令拉取镜像下来并运行:u003Cu002Fpu003Eu003Cpu003E启动成功后,我们在浏览器中就可以直接访问我们刚才的 Spring Boot 项目中的 hello 接口了:u003Cu002Fpu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002Fd200a11aa3624473bb9902ce6571b8a2″ img_width=”470″ img_height=”104″ alt=”别用 Dockerfile 部署 Spring Boot 啦!教你如何两步搞定” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cpu003E是不是很方便?比我第一次给大家介绍的方案要方便很多。u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E注意u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003E这种方式是将项目构建成镜像后并 push 到 registers 上,这种构建方式不需要你本地安装 Docker,如果你需要在本地运行镜像,那当然需要 Docker,单纯的构建是不需要 Docker 环境的。u003Cu002Fpu003Eu003Cpu003E本地构建u003Cu002Fpu003Eu003Cpu003E如果你电脑本地刚好安装了 Docker ,有 Docker 环境,那么也可以将项目构建成本地 Docker 的镜像,u003Cu002Fpu003Eu003Cpu003E首先我们来查看一下本地镜像:u003Cu002Fpu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002Fc0cecadf684b4f309fab6c0252f6bcaa” img_width=”1080″ img_height=”82″ alt=”别用 Dockerfile 部署 Spring Boot 啦!教你如何两步搞定” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cpu003E可以看到只有 MySQL 镜像,然后我们执行如下命令构建本地镜像:u003Cu002Fpu003Eu003Cpu003E看到如下构建日志信息表示构建成功:u003Cu002Fpu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp9.pstatp.comu002Flargeu002Fpgc-imageu002Fb835219a286648818964899668ec23a5″ img_width=”1080″ img_height=”335″ alt=”别用 Dockerfile 部署 Spring Boot 啦!教你如何两步搞定” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cpu003E构建完成后,我们再来看本地镜像:u003Cu002Fpu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F06ee02597b174de98117889f48f80036″ img_width=”1080″ img_height=”136″ alt=”别用 Dockerfile 部署 Spring Boot 啦!教你如何两步搞定” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cpu003E可以都看到,已经构建成功了,接下来启动命令和上面一样,我就不重复展示了。u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E结语u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003E容器的出现,让我们的 Java 程序比任何时候都接近“一次编写,到处运行”,Spring Boot 容器化部署也是越来越方便,后面有空松哥再和大家聊聊结合 jenkins 的用法,好了,本文的案例我已经上传到 GitHub:https:u002Fu002Fgithub.comu002Flenveu002Fjavaboy-code-samples,有问题欢迎留言讨论。u003Cu002Fpu003Eu003Cu002Fdivu003E”

原文始发于:别用 Dockerfile 部署 Spring Boot 啦!教你如何两步搞定

主题测试文章,只做测试使用。发布者:逗乐男神i,转转请注明出处:http://www.cxybcw.com/26458.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code