@RestController当我们运行它并打开 "http://localhost:8080 "时,会得到 "一切正常 "的回应。
@SpringBootApplication
public class ServiceDockerImageBuildApplication {
public static void main(String[] args) {
SpringApplication.run(ServiceDockerImageBuildApplication.class, args);
}
@GetMapping("/")
public ResponseEntity get(){
return ResponseEntity.ok("All Ok");
}
}
mvn spring-boot:build-image是一个 Maven 命令,用于使用 spring-boot-maven-plugin 插件将 Spring Boot 应用程序打包成可执行的镜像文件。这个命令的作用是自动生成跨全平台的镜像服务,无需再自己手动编写 Dockerfile 文件。这个插件基于 buildpacks 这个规范,有一系列的生命周期,和 Maven 差不多。正常来说,如果是在互联网环境下,它会自动检测项目的语言、运行时环境(如 Python、Node.js、JVM)等,并自动从网络下载对应的依赖,一键即可生成镜像,非常方便。
===> DETECTING您可以使用参数指定最终图像的名称,如下所示
[INFO] [creator] 6 of 24 buildpacks participating
[INFO] [creator] paketo-buildpacks/ca-certificates 3.2.4
[INFO] [creator] paketo-buildpacks/bellsoft-liberica 9.3.7
[INFO] [creator] paketo-buildpacks/syft 1.12.0
[INFO] [creator] paketo-buildpacks/executable-jar 6.2.4
[INFO] [creator] paketo-buildpacks/dist-zip 5.2.4
[INFO] [creator] paketo-buildpacks/spring-boot 5.12.0
...
...
[INFO] Successfully built image 'docker.io/library/service-docker-image-build:0.0.1-SNAPSHOT'
mvn spring-boot:build-image \或者在配置中指定,如下所示
-Dspring-boot.build-image.imageName=my-spring-boot-image
现在,我看到这里有几个自定义级别。如果你想真正自定义图像的构建过程,你必须创建自己的构建器图像来定义你的构建过程。让我们看看另一种构建镜像的方法:
org.springframework.boot
spring-boot-maven-plugin
my-spring-boot-image
配置部分非常简单。让我们看看 部分的一些重要配置。在这里,我们使用 标记指定基本镜像,然后在 部分指定镜像的组装方式。在装配部分,我们指定了 ,其值为 artifact,以表示我们只想复制已构建的构件,而 标记则指定了目标图像中将其复制到的位置。desciptorRef 有多种选项,比如是否要将依赖项与 artifact 一并复制或仅复制依赖项等,你可以在这里找到。由于我们构建的是一个单一的胖 jar,因此只需复制工件即可。
io.fabric8
docker-maven-plugin
0.40.1
${project.name}{project.version}
openjdk:17
build
artifact
8080
java -jar build/${project.name}-${project.version}.jar
build-image
verify
build
在这里,我们在 标签中指定了我们想要的基本镜像,并在 标签中指定了我们想要的最终镜像名称。现在,我在 部分使用了 dockerBuild 目标,这样,docker 镜像就会被构建到本地的 docker 守护进程中。如果使用了构建目标,JIB 插件就会构建 docker 镜像,并将其推送到相应的版本库。它支持所有主要的版本库,如 docker.io、AWS ECR、Google GCR、Azure ACR 等。为此,你可以设置推送镜像的验证机制。你可以在此阅读相关内容。
com.google.cloud.tools
jib-maven-plugin
3.2.1
openjdk:17
jib-build-${project.name}{project.version}
verify
dockerBuild
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |