Slide 1

Slide 1 text

Jib 打包 Java 應 用 的那些事 心 得分享與擴充攻略 Matt Ho

Slide 2

Slide 2 text

Hi, I'm Matt 👋 - 松凌科技 Architect / R&D - JCConf Speaker - in/methodho - github.com/shihyuho

Slide 3

Slide 3 text

Lab github.com/shihyuho/jcconf2024-jib

Slide 4

Slide 4 text

今天講什麼?

Slide 5

Slide 5 text

Image 裡有什麼

Slide 6

Slide 6 text

Fat Jar

Slide 7

Slide 7 text

Fat Jar - Dockerfile

Slide 8

Slide 8 text

Fat Jar - Layers

Slide 9

Slide 9 text

Jib

Slide 10

Slide 10 text

Jib - Layers

Slide 11

Slide 11 text

喜歡 Jib 的原因 1. Daemonless 2. No more Dockerfiles 3. Well integrated with build tools (Maven/Gradle) 4. Optimized for improved layer caching 5. Extensible (等等~ 這啥?)

Slide 12

Slide 12 text

有時候我們會需要 自 定義 entrypoint

Slide 13

Slide 13 text

原來是 Jib 忽略了

Slide 14

Slide 14 text

Jib 的擴充 softleader/jib-jvm-flags-extension-maven A Jib maven extension outputs the configured into the /app/jib-jvm-flags-file file, allowing a custom entrypoint to access these flags.

Slide 15

Slide 15 text

Jib 怎麼擴充

Slide 16

Slide 16 text

多了 一 個 Layer

Slide 17

Slide 17 text

現在的 entrypoint 長這樣

Slide 18

Slide 18 text

更多的應 用 softleader/memory-calculator 基於 paketo-buildpacks/libjvm 的 JVM 記憶體計算 工 具

Slide 19

Slide 19 text

Recap - Image 的組成 - 打包成 Image 的幾種 方 式 - 喜歡 Jib 的原因 - Jib 的擴充及延伸應 用

Slide 20

Slide 20 text

Thank you 🙌