Springboot2。4更新后提供了SpringBootMaven插件的springboot:buildimage指令和Gradle插件的bootBuildImage任务现在可以直接发布Docker镜像到Docker注册中心了。 下面介绍Gradle的bootBuildImage方式 从网上找到一个图能说明这个过程 开发机器可以是windows系统,不安装docker,使用一个中间机器运行docker,实现docker的打包和发送。1、docker机器开启远程访问 参考:https:blog。csdn。netu011943534articledetails1121348182、将harbor服务器的地址配置到daemon。json中支持http访问vietcdockerdaemon。json 3、使用gradle创建springboot项目 过程略4、build。xml添加bootBuildImage任务bootBuildImage{imageName192。168。100。96:80library{project。name}:0。0。1发布到harbor的镜像名称publishtrue是否发布docker{hosttcp:192。168。100。91:2375中间docker宿主机的地址tlsVerifyfalsecertPathhomeusers。minikubecertspublishRegistry{usernameadminharbor用户名passwordHarbor12345harbor密码urlhttp:192。168。100。96harbor地址email76775081qq。com邮箱}}}5、运行 运行gradlebootBuildImage或在idea中点击运行bootBuildImage任务 第一次运行要下载依赖的镜像等,过程可能有点长 控制台输出:16:06:01:ExecutingtaskbootBuildImage。。。Task:compileJavaUPTODATETask:processResourcesNOSOURCETask:classesUPTODATETask:bootJarMainClassNameUPTODATETask:bootJarUPTODATETask:bootBuildImageBuildingimage192。168。100。96:80librarytest2:0。0。1Pullingbuilderimagedocker。iopaketobuildpacksbuilder:base。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。Pulledbuilderimagepaketobuildpacksbuildersha256:984a3684db80a6d53214b81a9f21c31529bede5b447d6d6d82d94cd6734d2424Pullingrunimagedocker。iopaketobuildpacksrun:basecnb。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。Pulledrunimagepaketobuildpacksrunsha256:f393fa2927a2619a10fc09bb109f822d20df909c10fed4ce3c36fad313ea18e3Executinglifecycleversionv0。10。1Usingbuildcachevolumepackcachea271a2f39a50。buildRunningcreator〔creator〕DETECTING〔creator〕5of18buildpacksparticipating〔creator〕paketobuildpackscacertificates1。0。1〔creator〕paketobuildpacksbellsoftliberica6。0。0〔creator〕paketobuildpacksexecutablejar3。1。3〔creator〕paketobuildpacksdistzip2。2。2〔creator〕paketobuildpacksspringboot3。5。0〔creator〕ANALYZING〔creator〕Restoringmetadataforpaketobuildpackscacertificates:helperfromappimage〔creator〕Restoringmetadataforpaketobuildpacksbellsoftliberica:jvmkillfromappimage〔creator〕Restoringmetadataforpaketobuildpacksbellsoftliberica:helperfromappimage〔creator〕Restoringmetadataforpaketobuildpacksbellsoftliberica:javasecuritypropertiesfromappimage〔creator〕Restoringmetadataforpaketobuildpacksbellsoftliberica:jrefromappimage〔creator〕Restoringmetadataforpaketobuildpacksexecutablejar:classpathfromappimage〔creator〕Restoringmetadataforpaketobuildpacksspringboot:helperfromappimage〔creator〕Restoringmetadataforpaketobuildpacksspringboot:springcloudbindingsfromappimage〔creator〕Restoringmetadataforpaketobuildpacksspringboot:webapplicationtypefromappimage〔creator〕RESTORING〔creator〕BUILDING〔creator〕〔creator〕PaketoCACertificatesBuildpack1。0。1〔creator〕https:github。compaketobuildpackscacertificates〔creator〕LaunchHelper:Reusingcachedlayer〔creator〕〔creator〕PaketoBellSoftLibericaBuildpack6。0。0〔creator〕https:github。compaketobuildpacksbellsoftliberica〔creator〕BuildConfiguration:〔creator〕BPJVMVERSION11。theJavaversion〔creator〕LaunchConfiguration:〔creator〕BPLJVMHEADROOM0theheadroominmemorycalculation〔creator〕BPLJVMLOADEDCLASSCOUNT35ofclassesthenumberofloadedclassesinmemorycalculation〔creator〕BPLJVMTHREADCOUNT250thenumberofthreadsinmemorycalculation〔creator〕JAVATOOLOPTIONStheJVMlaunchflags〔creator〕BellSoftLibericaJRE11。0。9:Reusingcachedlayer〔creator〕LaunchHelper:Reusingcachedlayer〔creator〕JVMKillAgent1。16。0:Reusingcachedlayer〔creator〕JavaSecurityProperties:Reusingcachedlayer〔creator〕〔creator〕PaketoExecutableJARBuildpack3。1。3〔creator〕https:github。compaketobuildpacksexecutablejar〔creator〕Processtypes:〔creator〕executablejar:javaorg。springframework。boot。loader。JarLauncher〔creator〕task:javaorg。springframework。boot。loader。JarLauncher〔creator〕web:javaorg。springframework。boot。loader。JarLauncher〔creator〕〔creator〕PaketoSpringBootBuildpack3。5。0〔creator〕https:github。compaketobuildpacksspringboot〔creator〕Creatingslicesfromlayersindex〔creator〕dependencies〔creator〕springbootloader〔creator〕snapshotdependencies〔creator〕application〔creator〕LaunchHelper:Reusingcachedlayer〔creator〕WebApplicationType:Reusingcachedlayer〔creator〕SpringCloudBindings1。7。0:Reusingcachedlayer〔creator〕4applicationslices〔creator〕Imagelabels:〔creator〕org。springframework。boot。springconfigurationmetadata。json〔creator〕org。springframework。boot。version〔creator〕EXPORTING〔creator〕Reusinglayerpaketobuildpackscacertificates:helper〔creator〕Reusinglayerpaketobuildpacksbellsoftliberica:helper〔creator〕Reusinglayerpaketobuildpacksbellsoftliberica:javasecurityproperties〔creator〕Reusinglayerpaketobuildpacksbellsoftliberica:jre〔creator〕Reusinglayerpaketobuildpacksbellsoftliberica:jvmkill〔creator〕Reusinglayerpaketobuildpacksexecutablejar:classpath〔creator〕Reusinglayerpaketobuildpacksspringboot:helper〔creator〕Reusinglayerpaketobuildpacksspringboot:springcloudbindings〔creator〕Reusinglayerpaketobuildpacksspringboot:webapplicationtype〔creator〕Reusing55applayer(s)〔creator〕Reusinglayerlauncher〔creator〕Reusinglayerconfig〔creator〕Reusinglayerprocesstypes〔creator〕Addinglabelio。buildpacks。lifecycle。metadata〔creator〕Addinglabelio。buildpacks。build。metadata〔creator〕Addinglabelio。buildpacks。project。metadata〔creator〕Addinglabelorg。springframework。boot。springconfigurationmetadata。json〔creator〕Addinglabelorg。springframework。boot。version〔creator〕Settingdefaultprocesstypeweb〔creator〕Images(71860355d2cc):〔creator〕192。168。100。96:80librarytest2:0。0。1Successfullybuiltimage192。168。100。96:80librarytest2:0。0。1Pushingimage192。168。100。96:80librarytest2:0。0。1。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。Pushedimage192。168。100。96:80librarytest2:0。0。1DeprecatedGradlefeatureswereusedinthisbuild,makingitincompatiblewithGradle7。0。Usewarningmodealltoshowtheinpidualdeprecationwarnings。Seehttps:docs。gradle。org6。5userguidecommandlineinterface。htmlsec:commandlinewarningsBUILDSUCCESSFULin34s4actionabletasks:1executed,3uptodate16:06:36:TaskexecutionfinishedbootBuildImage。6、登录harbor查看刚发布的镜像