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
為什么會出現這個錯誤?
uj5u.com熱心網友回復:
這四個目錄中的每一個都旨在用作 Docker 映像中的單獨層。它們需要被復制到一個目錄中。在 Dockerfile 中,它看起來像這樣:
COPY --from=builder application/dependencies/ ./
COPY --from=builder application/spring-boot-loader/ ./
COPY --from=builder application/snapshot-dependencies/ ./
COPY --from=builder application/application/ ./
然后可以從層被復制到的目錄中啟動應用程式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/452595.html
