~/talk

Squeezing Java Containers: Shrinking Your Kubernetes Footprint with jlink

Talkat Commit Your Code 2026 · 2026-09-02..09-04· [java, web-platform]
links:none on file
slides:none on file

Shows a concrete refactor path from a 523 MB Tomcat WAR to a 121 MB Alpine image using jlink custom JRE, cutting image size ~77% with zero business logic changes. Uses jdeps module list and a multi-stage Dockerfile to build a JRE of ~12 modules versus the full 49/69 module JRE/JDK, warns to rerun jdeps after dependency changes, explains Class Data Sharing tradeoffs, notes OpenTelemetry needs extra modules and Alpine musl causes JNI compatibility issues.

AI-written summary · about

  1. 0:00Introduction
  2. 1:53Smaller Java containers matter
  3. 3:37Classic lift-and-shift with Tomcat WAR
  4. 4:41Dropping app server with embedded Jetty
  5. 6:05Trimming JRE with jlink and jdeps
  6. 10:46Live demo of size reductions
  7. 12:31To-do app in action
  8. 14:47Performance and security trade-offs
  9. 16:40Size comparison and Kubernetes impact
  10. 18:48Spring Boot with jlink and security
  11. 19:54Summary
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.