Spring Boot layered(分层) jar 构建docker镜像

本文介绍了如何利用Spring Boot 2.3后的分层特性,结合Docker的分层构建原理,提高docker镜像构建和启动效率。通过创建Spring Boot demo项目,演示了分层打包的过程,并展示了如何编写Dockerfile,自定义分层配置以优化镜像大小和构建速度。
摘要由CSDN通过智能技术生成

文章目录

Docker分层

Docker 容器由基本映像和附加层组成。一旦构建了各个层,它们将保持缓存状态,后续构建,就会使用缓存,构建更快

低层次的变化也会重建较高层次的变化。因此,我们在构建镜像的时候最好将不经常变化的图层保留在底部,而经常变化的图层应该放在顶部。这样就能提高构建docker效率和启动时间。

Spring Boot分层

Spring boot 在2.3之后也提供了应用分层,默认分层如下

这里可以看到应用层是独立一层,我们在修改应用代码的时候就只用构建应用层即可。 spring-boot-loaderdependencies 层就可以使用缓存,从而减少docker镜像的创建和启动时间。

分层打包

  • 传统打包
<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>11</source>
					<target>11</target>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<version>${spring-boot.version}</version>
				<executions>
					<execution>
						<goals>
							<goal>repackage</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

这种方式是将整个Spring Boot打成一个jar,没有分层

在Spring Boot 2.3之后添加了分层配置我们在打包插件中开启分层打包

  • 分层打包
<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>ma
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值