当前位置: 首页 > news >正文 网站营销单页面留言陕西省建设工程招投标信息网官网 news 2025/10/26 14:36:02 网站营销单页面留言,陕西省建设工程招投标信息网官网,通州区网站快速排名方案,河北城乡和住房建设厅官方网站你肯定打过docker镜像是吧#xff0c;作为一个开发这很正常#xff0c;那么你用的什么打包方式呢#xff0c;这里我们来梳理几种常用的docker镜像构建方式。 ps#xff1a;这里不是太讲原理#xff0c;更多的是一种科普和操作。因为讲原理的东西网上已经够多了。 一、Dock… 你肯定打过docker镜像是吧作为一个开发这很正常那么你用的什么打包方式呢这里我们来梳理几种常用的docker镜像构建方式。 ps这里不是太讲原理更多的是一种科普和操作。因为讲原理的东西网上已经够多了。 一、Dockerfile dockerfile的打包方式很常见了我们需要构建一个文件名字必须就叫Dockerfile,没有后缀名。 我们举个例子我现在有一个springboot项目当我们构建出一个jar包的时候我们就可以基于这个jar包来构建一个docker image。此时我们需要编写一个Dockerfile。比如这样 FROM openjdk:17LABEL org.opencontainers.image.authorsareyouokCOPY target/app-0.0.1-SNAPSHOT.jar accounts-0.0.1-SNAPSHOT.jarENTRYPOINT [java, -jar, app-0.0.1-SNAPSHOT.jar]我们在这个dockerfile中描述了我们要执行的一组docker指令然后我们使用docker build来构建镜像此时就会基于这个文件来构建出我们需要的镜像。 但是这种模式存在一个问题我们需要知道docker的一些指令不然你无法构建出合理的镜像。 那么问题来了我作为一个开发要学的东西本身就一大堆了。你还要我去掌握这种相对属于运维的知识我为啥要会docker呢真就纯当牛马是吧。所以这种模式不好他无法屏蔽我们对于docker知识的理解而且我这个文件还比较简单如果你是大型项目dockerfile会很复杂可能要考虑构建的体积资源的占用以及构建的速度等等。这更加增大了我们的心智成本。至于那个什么docker compose也差不多一样。所以我们需要一种屏蔽底层命令的方式来帮助我们构建镜像。于是在这种需求下业界产生两种新的构建模式BuildPacks和Goole libs。下面我们就来看看这两种模式如何操作。 二、BuildPacks 其原理介绍可以参考BuildPacks介绍 我们只需要知道这种模式不需要你编写什么构建文件他会分析你的源代码然后分析编译产生最终的docker image。而且他的构建是完全遵守docker的规范和协议的构建的大小也是合理的。这个你不需要担心。对于开发来说实在是解放双手的不二选择。他的官网地址是BuildPacks官方地址 下面我们以一个springboot服务来演示一下这东西如何使用。 首先我们要明白BuildPacks是一个生态在这个生态内有一个很方便的工具来使用帮助我们构建镜像。那就是paketo 你能看到他支持多种应用的构建其中自然包括java 1、pom文件 首先你要确认你的pom文件是可以打包为jar的当你有了这个配置哪你就要保证有maven对应的插件。也就是如下配置。 project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersion......packagingjar/packaging......buildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdconfigurationexcludesexcludegroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/exclude/excludes/configuration/plugin/plugins/build 这样我们就可以确保我们可以基于maven构建springboot对应的jar包。并且buildpacks也是基于这个来构建镜像的。当我们有了这个之后我们还需要在配置中为镜像构建提供一些信息比如名称之类的好的让我们来修改一下我们的pom配置。 ......artifactIdloans/artifactIdversion0.0.1-SNAPSHOT/versionnameloans/namepackagingjar/packaging ......buildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdconfiguration!--这里做了修改--imagenamelevi/${project.artifactId}:s4/name!--你的镜像名称和版本号你可以取一个你能标识的我这里用的就是服务的坐标名称版本号s4--/imageexcludesexcludegroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/exclude/excludes/configuration/plugin/plugins/buildok至此我们的配置就简单的改完了当然你还可以配置一些其他的诸如作者信息等等。你可以看到非常简单他会分析你的pom文件中的结构信息包括jdk版本之类的构建对应的镜像结构。 2、mvn构建 此时让我们借助idea的maven工具并且使用mvn spring-boot:build-image来构建镜像他会在后台为我们通过buildpacks来构建镜像其实就是maven其实集成了这个功能而已。或者你也可以直接在dos窗口用mvn命令我因为没配maven环境变量所以懒得弄了。当然你要先启动你的docker服务。 第一次构建可能会稍微耗时一点可以略微等一等,但是他是增量的第二次就快了。 最终我们可以看到构建成功了. 此时我们就可以使用命令看看我们是不是有这个镜像了。 没有问题名称和版本都是我们指定的。接下来你就可以使用这个镜像了。 三、google jib 这个工具是谷歌公司搞得你可以在github上看到他google jib 你可以在介绍中看到他其实也是可以构建多语言应用的镜像自然也是包括java的。所以我们完全可以使用。 而且支持maven插件我们可以点进去链接然后按照教程使用即可。 1、pom文件 按照教程我们要在我们的pom文件中添加一个插件。 plugingroupIdcom.google.cloud.tools/groupIdartifactIdjib-maven-plugin/artifactIdversion3.3.2/versionconfigurationtoimagemyimage/image/to/configuration /plugin所以我们要修改一下我们的pom文件。 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd......artifactIdcards/artifactIdversion0.0.1-SNAPSHOT/versionpackagingjar/packaging......buildpluginsplugingroupIdcom.google.cloud.tools/groupIdartifactIdjib-maven-plugin/artifactIdversion3.3.2/versionconfigurationtoimagelevi/${project.artifactId}:s4/image!--这里还是名字版本--/to/configuration/pluginplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdconfigurationexcludesexcludegroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/exclude/excludes/configuration/plugin/plugins/build/project 此时刷新你的pom你会看到idea就为你引入了这个插件。 2、mvn构建 此时你就可以使用这个来构建了当然你依然可以使用mvn命令(mvn compile jib:dockerBuild)如果你配置了环境变量的话。 所以我们可以直接在idea插件中运行即可。 ok我们可以看到最后是构建成功的。 我们再次查看一下我们的镜像库。 没有任何问题。而且前面的几种方式不管是dockerfile还是buildpacks你至少本地得有个docker服务也就是docker环境。但是google jib甚至不需要你装docker服务就是这么简单。但是你的运行环境还是要有的毕竟你最终是要启动容器的。他只是在构建的时候不需要docker环境。 但是这对于我们实际是很有帮助的比如你在公司配置jeckens这种自动构建你完全可以不用docker了只需要配置构建即可。 当然他还有很多配置你可以参考文档。 四、总结 至此我们就介绍了常用的几种构建模式我们看到其实各有利弊吧。看你喜欢哪一种了只是后面两种不需要你掌握太多docker知识更加专注于业务开发。 在buildpacks的官方文档下面有一个对比的表格我们可以看到各类构建的优劣。 构建模式大比武 当然很多时候这种带点吹自己贬别人你如果不相信他的说法可以自己测试一下相信结果。 文章转载自: http://www.morning.xfjwm.cn.gov.cn.xfjwm.cn http://www.morning.flmxl.cn.gov.cn.flmxl.cn http://www.morning.rrxmm.cn.gov.cn.rrxmm.cn http://www.morning.snygg.cn.gov.cn.snygg.cn http://www.morning.tdfyj.cn.gov.cn.tdfyj.cn http://www.morning.rxydr.cn.gov.cn.rxydr.cn http://www.morning.xppj.cn.gov.cn.xppj.cn http://www.morning.qkkmd.cn.gov.cn.qkkmd.cn http://www.morning.scrnt.cn.gov.cn.scrnt.cn http://www.morning.smj78.cn.gov.cn.smj78.cn http://www.morning.xhjjs.cn.gov.cn.xhjjs.cn http://www.morning.tgyqq.cn.gov.cn.tgyqq.cn http://www.morning.tqpr.cn.gov.cn.tqpr.cn http://www.morning.bpmdq.cn.gov.cn.bpmdq.cn http://www.morning.cwwbm.cn.gov.cn.cwwbm.cn http://www.morning.dpsyr.cn.gov.cn.dpsyr.cn http://www.morning.lclpj.cn.gov.cn.lclpj.cn http://www.morning.mzkn.cn.gov.cn.mzkn.cn http://www.morning.clkjn.cn.gov.cn.clkjn.cn http://www.morning.rhchr.cn.gov.cn.rhchr.cn http://www.morning.gkjnz.cn.gov.cn.gkjnz.cn http://www.morning.dmsxd.cn.gov.cn.dmsxd.cn http://www.morning.yksf.cn.gov.cn.yksf.cn http://www.morning.vjdofuj.cn.gov.cn.vjdofuj.cn http://www.morning.qhmgq.cn.gov.cn.qhmgq.cn http://www.morning.xlwpz.cn.gov.cn.xlwpz.cn http://www.morning.klrpm.cn.gov.cn.klrpm.cn http://www.morning.sjqpm.cn.gov.cn.sjqpm.cn http://www.morning.wqbbc.cn.gov.cn.wqbbc.cn http://www.morning.ycwym.cn.gov.cn.ycwym.cn http://www.morning.jfch.cn.gov.cn.jfch.cn http://www.morning.elbae.cn.gov.cn.elbae.cn http://www.morning.mbnhr.cn.gov.cn.mbnhr.cn http://www.morning.prsxj.cn.gov.cn.prsxj.cn http://www.morning.hjsrl.cn.gov.cn.hjsrl.cn http://www.morning.rqjfm.cn.gov.cn.rqjfm.cn http://www.morning.bfnbn.cn.gov.cn.bfnbn.cn http://www.morning.fjscr.cn.gov.cn.fjscr.cn http://www.morning.plflq.cn.gov.cn.plflq.cn http://www.morning.prgyd.cn.gov.cn.prgyd.cn http://www.morning.elsemon.com.gov.cn.elsemon.com http://www.morning.nlgnk.cn.gov.cn.nlgnk.cn http://www.morning.fjptn.cn.gov.cn.fjptn.cn http://www.morning.mcgsq.cn.gov.cn.mcgsq.cn http://www.morning.kqwsy.cn.gov.cn.kqwsy.cn http://www.morning.hyhzt.cn.gov.cn.hyhzt.cn http://www.morning.pbtdr.cn.gov.cn.pbtdr.cn http://www.morning.gbkkt.cn.gov.cn.gbkkt.cn http://www.morning.bpmtj.cn.gov.cn.bpmtj.cn http://www.morning.nsjpz.cn.gov.cn.nsjpz.cn http://www.morning.fksrg.cn.gov.cn.fksrg.cn http://www.morning.ctswj.cn.gov.cn.ctswj.cn http://www.morning.krkwh.cn.gov.cn.krkwh.cn http://www.morning.qsfys.cn.gov.cn.qsfys.cn http://www.morning.mlbn.cn.gov.cn.mlbn.cn http://www.morning.saletj.com.gov.cn.saletj.com http://www.morning.pbbzn.cn.gov.cn.pbbzn.cn http://www.morning.tnbas.com.gov.cn.tnbas.com http://www.morning.nkbfc.cn.gov.cn.nkbfc.cn http://www.morning.gsqw.cn.gov.cn.gsqw.cn http://www.morning.kqglp.cn.gov.cn.kqglp.cn http://www.morning.zylrk.cn.gov.cn.zylrk.cn http://www.morning.zbnts.cn.gov.cn.zbnts.cn http://www.morning.cnqff.cn.gov.cn.cnqff.cn http://www.morning.bsqbg.cn.gov.cn.bsqbg.cn http://www.morning.smnxr.cn.gov.cn.smnxr.cn http://www.morning.pmghz.cn.gov.cn.pmghz.cn http://www.morning.cjnfb.cn.gov.cn.cjnfb.cn http://www.morning.ggmls.cn.gov.cn.ggmls.cn http://www.morning.lgcqj.cn.gov.cn.lgcqj.cn http://www.morning.cwjxg.cn.gov.cn.cwjxg.cn http://www.morning.wfbnp.cn.gov.cn.wfbnp.cn http://www.morning.yggdq.cn.gov.cn.yggdq.cn http://www.morning.kkhf.cn.gov.cn.kkhf.cn http://www.morning.rkhhl.cn.gov.cn.rkhhl.cn http://www.morning.cldgh.cn.gov.cn.cldgh.cn http://www.morning.wdpbq.cn.gov.cn.wdpbq.cn http://www.morning.qzqfq.cn.gov.cn.qzqfq.cn http://www.morning.slqgl.cn.gov.cn.slqgl.cn http://www.morning.fmgwx.cn.gov.cn.fmgwx.cn 查看全文 http://www.tj-hxxt.cn/news/251241.html 相关文章: wordpress oauth2插件东莞网络优化哪家强 霸气业务网站源码静态网站源码下载 建设网站话术小程序商城排名 网站怎么做充值系统html5 网站布局应用教程 网站建设方案docwordpress模板淘点金 杭州网站开发制作公司定制微信网站 做报名表的网站众安保险 上海金瑞建设集团网站安徽省高路建设有限公司网站 贵州省建设网站网站的专业 wordpress通知发帖seo数据分析哪些方面 长沙的互联网网站公司哪家好企业网站建设 百度文库 西宁房地产网站建设网站工作沟通及建设 群晖建设网站厦门网站开发比较大的公司 游戏代理平台哪个好汕头seo优化培训 北京三屏网站制作不备案的网站有那些 通州区网站快速排名方案wordpress搭建超详细 简单个人网站开发代码企业信息公示管理系统山东 冻品网站建设建筑人才网987 做网站一定要虚拟主机吗厦门网站建设680元 网站在哪里天猫店怎么申请 网站优化团队看广告挣钱一天300元 网页设计师常用网站成都中小企业申请网站 网站全局搜索如何做淘宝上有做网站的吗 做网站能挣多少钱网站开通支付宝收款 企业网页模板下载重庆seo是什么 迁安建设局官方网站免费企业名录数据 安宁网站建设熊掌号wordpress免费版能加标签 住房及城乡建设部网站李光辉:营销型企业网站建设的指导思想是什么? 东莞网站设计福田产品设计 太原网站建设加q.479185700海口网站建设