Containers All the Way Down!
summary
Starts with a 468–490 MB Docker image using Eclipse Temurin base image and JVM cold-start ~2s, then swaps the OS to Distroless to drop to ~356 MB. Using Spring’s Maven build-image with Paketo/cloud-native buildpacks halves image size and cuts startup to ~1.5s. Compiling to a GraalVM/native executable via the CNB native builder yields ~117 MB images and ~0.07s startup. Builds run locally with Docker or in CI (GitHub Actions); results are reproducible and trade JVM runtime optimizations for much smaller, faster artifacts.
AI-written summary · about
chapters (13)
- 0:00Introduction and welcome
- 1:08Speaker background and book
- 6:44Java history and WORA
- 13:19Containerization and Docker basics
- 18:52Demo: Basic Spring Boot container
- 22:42Optimizing container size and startup
- 26:56Distroless images and tradeoffs
- 29:02Fully executable JARs
- 33:14Spring Boot buildpacks
- 37:30Demo: Buildpack container image
- 39:11Native images and GraalVM
- 43:29Tradeoffs: JVM vs native executables
- 47:03Summary and resources
related talks
46mLean Spring Boot Applications for The Cloud
45mJVMs in Containers, Towards a Perfect Symbiosis!
46mJava in a World of Containers
35mJava in a world of containers
48mLean Spring Boot Applications for the Cloud
42mJava in the Cloud with GraalVM
49mBuilding native images for fun and profit
33mCloud-Friendly Applications with GraalVM
