Spring Boot 2.3构建的docker镜像是否比臂架更好?

时间:2020-07-31 12:43:21

标签: spring spring-boot docker jib

到目前为止,我使用的是Spring Boot 2.2,并使用臂架构建了docker镜像。

但是现在,Spring Boot 2.3发布了, 发行说明说,默认情况下,Spring Boot 2.3可以使用Paketo buildpack构建Docker映像。

Spring Boot 2.3 enhances Docker support with new features 本文说,Spring Boot 2.3将允许更高效的Docker构建。

我试图用Spring Boot 2.3构建一个docker镜像。 如下所示,Spring Boot 2.3默认情况下可以使用一些jvm选项构建映像以优化内存。

Container memory limit unset. Configuring JVM for 1G container.
Calculated JVM Memory Configuration: -XX:MaxDirectMemorySize=10M -XX:MaxMetaspaceSize=83555K -XX:ReservedCodeCacheSize=240M -Xss1M -Xmx453020K (Head Room: 0%, Loaded Class Count: 12338, Thread Count: 250, Total Memory: 1.0G)
Adding 127 container CA certificates to JVM truststore
Spring Cloud Bindings Boot Auto-Configuration Enabled

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \  
\\/  ___)| |_)| | | | | || (_| |  ) ) ) )
 '  |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot ::        (v2.3.1.RELEASE)

我的问题: Spring Boot 2.3构建的docker镜像是否比臂架构建的docker镜像更好?

1 个答案:

答案 0 :(得分:0)

没有更好,但是有所不同。 Jib可以在不安装docker的情况下构建映像。 Spring docker build将jar打包(在启动时稍微好一点),并将依赖项放入一个层中。当您构建新版本时,它可以重用这些层(如果依赖关系未更改),因此它仅使用您的应用程序创建一层(其大小比依赖关系的大小小得多)。这导致构建将更快。但是您必须安装本地docker。