Springboot2.4更新后提供了Spring Boot Maven 插件的 spring-boot:build-image 指令和 Gradle 插件的 bootBuildImage 任务现在可以直接发布 Docker 镜像到 Docker 注册中心了。 下面介绍Gradle的bootBuildImage方式 从网上找到一个图能说明这个过程 开发机器可以是windows系统,不安装 docker,使用一个中间机器运行docker,实现docker的打包和发送。 1、docker机器开启远程访问 参考:https://blog.csdn.net/u011943534/article/details/1121348182、将harbor服务器的地址配置到daemon.json中支持http访问vi /etc/docker/daemon.json 3、使用gradle创建springboot项目 过程略4、build.xml添加bootBuildImage任务bootBuildImage { imageName = "192.168.100.96:80/library/${project.name}:0.0.1" //发布到harbor的镜像名称 publish = true //是否发布 docker { host = "tcp://192.168.100.91:2375" //中间docker宿主机的地址 tlsVerify = false // certPath = "/home/users/.minikube/certs" publishRegistry { username = "admin" //harbor用户名 password = "Harbor12345" //harbor密码 url = "http://192.168.100.96" //harbor地址 email = "76775081@qq.com" //邮箱 } } }5、运行 运行gradle bootBuildImage 或在idea中点击运行bootBuildImage任务 第一次运行要下载依赖的镜像等,过程可能有点长 控制台输出:16:06:01: Executing task "bootBuildImage"... > Task :compileJava UP-TO-DATE > Task :processResources NO-SOURCE > Task :classes UP-TO-DATE > Task :bootJarMainClassName UP-TO-DATE > Task :bootJar UP-TO-DATE > Task :bootBuildImage Building image "192.168.100.96:80/library/test2:0.0.1" > Pulling builder image "docker.io/paketobuildpacks/builder:base" .................................................. > Pulled builder image "paketobuildpacks/builder@sha256:984a3684db80a6d53214b81a9f21c31529bede5b447d6d6d82d94cd6734d2424" > Pulling run image "docker.io/paketobuildpacks/run:base-cnb" .................................................. > Pulled run image "paketobuildpacks/run@sha256:f393fa2927a2619a10fc09bb109f822d20df909c10fed4ce3c36fad313ea18e3" > Executing lifecycle version v0.10.1 > Using build cache volume "pack-cache-a271a2f39a50.build" > Running creator [creator] ===> DETECTING [creator] 5 of 18 buildpacks participating [creator] paketo-buildpacks/ca-certificates 1.0.1 [creator] paketo-buildpacks/bellsoft-liberica 6.0.0 [creator] paketo-buildpacks/executable-jar 3.1.3 [creator] paketo-buildpacks/dist-zip 2.2.2 [creator] paketo-buildpacks/spring-boot 3.5.0 [creator] ===> ANALYZING [creator] Restoring metadata for "paketo-buildpacks/ca-certificates:helper" from app image [creator] Restoring metadata for "paketo-buildpacks/bellsoft-liberica:jvmkill" from app image [creator] Restoring metadata for "paketo-buildpacks/bellsoft-liberica:helper" from app image [creator] Restoring metadata for "paketo-buildpacks/bellsoft-liberica:java-security-properties" from app image [creator] Restoring metadata for "paketo-buildpacks/bellsoft-liberica:jre" from app image [creator] Restoring metadata for "paketo-buildpacks/executable-jar:class-path" from app image [creator] Restoring metadata for "paketo-buildpacks/spring-boot:helper" from app image [creator] Restoring metadata for "paketo-buildpacks/spring-boot:spring-cloud-bindings" from app image [creator] Restoring metadata for "paketo-buildpacks/spring-boot:web-application-type" from app image [creator] ===> RESTORING [creator] ===> BUILDING [creator] [creator] Paketo CA Certificates Buildpack 1.0.1 [creator] https://github.com/paketo-buildpacks/ca-certificates [creator] Launch Helper: Reusing cached layer [creator] [creator] Paketo BellSoft Liberica Buildpack 6.0.0 [creator] https://github.com/paketo-buildpacks/bellsoft-liberica [creator] Build Configuration: [creator] $BP_JVM_VERSION 11.* the Java version [creator] Launch Configuration: [creator] $BPL_JVM_HEAD_ROOM 0 the headroom in memory calculation [creator] $BPL_JVM_LOADED_CLASS_COUNT 35% of classes the number of loaded classes in memory calculation [creator] $BPL_JVM_THREAD_COUNT 250 the number of threads in memory calculation [creator] $JAVA_TOOL_OPTIONS the JVM launch flags [creator] BellSoft Liberica JRE 11.0.9: Reusing cached layer [creator] Launch Helper: Reusing cached layer [creator] JVMKill Agent 1.16.0: Reusing cached layer [creator] Java Security Properties: Reusing cached layer [creator] [creator] Paketo Executable JAR Buildpack 3.1.3 [creator] https://github.com/paketo-buildpacks/executable-jar [creator] Process types: [creator] executable-jar: java org.springframework.boot.loader.JarLauncher [creator] task: java org.springframework.boot.loader.JarLauncher [creator] web: java org.springframework.boot.loader.JarLauncher [creator] [creator] Paketo Spring Boot Buildpack 3.5.0 [creator] https://github.com/paketo-buildpacks/spring-boot [creator] Creating slices from layers index [creator] dependencies [creator] spring-boot-loader [creator] snapshot-dependencies [creator] application [creator] Launch Helper: Reusing cached layer [creator] Web Application Type: Reusing cached layer [creator] Spring Cloud Bindings 1.7.0: Reusing cached layer [creator] 4 application slices [creator] Image labels: [creator] org.springframework.boot.spring-configuration-metadata.json [creator] org.springframework.boot.version [creator] ===> EXPORTING [creator] Reusing layer "paketo-buildpacks/ca-certificates:helper" [creator] Reusing layer "paketo-buildpacks/bellsoft-liberica:helper" [creator] Reusing layer "paketo-buildpacks/bellsoft-liberica:java-security-properties" [creator] Reusing layer "paketo-buildpacks/bellsoft-liberica:jre" [creator] Reusing layer "paketo-buildpacks/bellsoft-liberica:jvmkill" [creator] Reusing layer "paketo-buildpacks/executable-jar:class-path" [creator] Reusing layer "paketo-buildpacks/spring-boot:helper" [creator] Reusing layer "paketo-buildpacks/spring-boot:spring-cloud-bindings" [creator] Reusing layer "paketo-buildpacks/spring-boot:web-application-type" [creator] Reusing 5/5 app layer(s) [creator] Reusing layer "launcher" [creator] Reusing layer "config" [creator] Reusing layer "process-types" [creator] Adding label "io.buildpacks.lifecycle.metadata" [creator] Adding label "io.buildpacks.build.metadata" [creator] Adding label "io.buildpacks.project.metadata" [creator] Adding label "org.springframework.boot.spring-configuration-metadata.json" [creator] Adding label "org.springframework.boot.version" [creator] Setting default process type "web" [creator] *** Images (71860355d2cc): [creator] 192.168.100.96:80/library/test2:0.0.1 Successfully built image "192.168.100.96:80/library/test2:0.0.1" > Pushing image "192.168.100.96:80/library/test2:0.0.1" .................................................. > Pushed image "192.168.100.96:80/library/test2:0.0.1" Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0. Use "--warning-mode all" to show the inpidual deprecation warnings. See https://docs.gradle.org/6.5/userguide/command_line_interface.html#sec:command_line_warnings BUILD SUCCESSFUL in 34s 4 actionable tasks: 1 executed, 3 up-to-date 16:06:36: Task execution finished "bootBuildImage". 6、登录harbor查看刚发布的镜像