0

到目前为止,我使用 Spring Boot 2.2 并使用 jib 构建 docker 映像。

但是现在,Spring Boot 2.3 发布了,Release Notes 说 Spring Boot 2.3 默认可以使用 Paketo buildpack 构建 Docker 镜像。

Spring Boot 2.3 通过新功能增强了 Docker 支持 本文说 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 镜像是否比 jib 构建的更好?

4

1 回答 1

0

不是更好,而是不同。Jib 无需安装 docker 即可构建镜像。Spring docker build 解压 jar(启动时稍微好一点)并将依赖项放入一个层。当您构建新版本时,它可以重用这些层(如果依赖项未更改),因此它只需为您的应用程序创建一个层(其大小远小于依赖项的大小)。这会导致构建速度更快。但是你必须安装本地 docker。

于 2020-07-31T18:33:05.540 回答