使用 spring 引导层工具模式时未找到 Jarlauncher
Jarlauncher was not found when using spring boot layertools mode
我使用 layertools
jar 模式提取了我的应用构建文件。
(参考 https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#container-images.dockerfiles)
结果提取出四个文件如下
application
dependencies
snapshot-dependencies
spring-boot-loader
然后,在同一目录中,我尝试通过执行以下命令 运行 应用程序:
$java org.springframework.boot.loader.JarLauncher
但是,出现了错误。
java.lang.ClassNotFoundException: org.springframework.boot.loader.JarLauncher
MANIFEST.MF
如下
Manifest-Version: 1.0
Main-Class: org.springframework.boot.loader.JarLauncher
Start-Class: com.henry.myproject.HelloApplicationKt
Spring-Boot-Version: 2.6.4
Spring-Boot-Classes: BOOT-INF/classes/
Spring-Boot-Lib: BOOT-INF/lib/
Spring-Boot-Classpath-Index: BOOT-INF/classpath.idx
Spring-Boot-Layers-Index: BOOT-INF/layers.idx
为什么会出现这个错误?
四个目录中的每一个都旨在用作 Docker 图像中的单独层。它们需要被复制到一个目录中。在 Docker 文件中,它看起来像这样:
COPY --from=builder application/dependencies/ ./
COPY --from=builder application/spring-boot-loader/ ./
COPY --from=builder application/snapshot-dependencies/ ./
COPY --from=builder application/application/ ./
然后可以从图层复制到的目录启动应用程序。
我使用 layertools
jar 模式提取了我的应用构建文件。
(参考 https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#container-images.dockerfiles)
结果提取出四个文件如下
application
dependencies
snapshot-dependencies
spring-boot-loader
然后,在同一目录中,我尝试通过执行以下命令 运行 应用程序:
$java org.springframework.boot.loader.JarLauncher
但是,出现了错误。
java.lang.ClassNotFoundException: org.springframework.boot.loader.JarLauncher
MANIFEST.MF
如下
Manifest-Version: 1.0
Main-Class: org.springframework.boot.loader.JarLauncher
Start-Class: com.henry.myproject.HelloApplicationKt
Spring-Boot-Version: 2.6.4
Spring-Boot-Classes: BOOT-INF/classes/
Spring-Boot-Lib: BOOT-INF/lib/
Spring-Boot-Classpath-Index: BOOT-INF/classpath.idx
Spring-Boot-Layers-Index: BOOT-INF/layers.idx
为什么会出现这个错误?
四个目录中的每一个都旨在用作 Docker 图像中的单独层。它们需要被复制到一个目录中。在 Docker 文件中,它看起来像这样:
COPY --from=builder application/dependencies/ ./
COPY --from=builder application/spring-boot-loader/ ./
COPY --from=builder application/snapshot-dependencies/ ./
COPY --from=builder application/application/ ./
然后可以从图层复制到的目录启动应用程序。