Files
spring-boot-demo/docker-images/scripts/demo-aot-mismatch.sh
T
asmhatreandClaude Opus 5 644da9e65e Add docker-images: one Spring Boot 4 service packaged nine ways
Companion code for "Dockerizing Spring Boot 4: Layered Jars, Buildpacks,
Distroless and Image Size Benchmarks". Fat jar on JDK and JRE, layered jar
on Debian, Alpine and distroless, jlink, the JDK 25 AOT cache, Paketo
buildpacks and Jib, each measured for size on disk and pushed, rebuild
delta, startup, user and shell. Also PID 1 and signal handling, the jdeps
module gap, AOT cache mismatches and buildpacks memory calculation.
Transcripts in docs/output/, regenerated by scripts/run-all.sh.

Co-Authored-By: Claude Opus 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01C3TETMrqVUWeFkNtz3Jbo3
2026-09-11 17:11:46 +00:00

21 lines
1.0 KiB
Bash

#!/usr/bin/env bash
# The AOT cache trained in image aot-cache, run by its own JVM and by a different JVM build.
# -> docs/output/aot-cache-mismatch.txt
set -uo pipefail
source "$(dirname "$0")/env.sh"
cd "$MODULE_DIR"
docker build -q -f docker/Dockerfile.aot-cache-mismatch -t sbd/docker-images:aot-cache-mismatch . > /dev/null
{
for t in aot-cache aot-cache-mismatch; do
name="aot-$$"; docker rm -f "$name" > /dev/null 2>&1
docker run -d --name "$name" "sbd/docker-images:$t" > /dev/null
for _ in $(seq 1 200); do docker logs "$name" 2>&1 | grep -q 'Started ImagesApplication' && break; sleep 0.1; done
echo "## sbd/docker-images:$t"
docker logs "$name" 2>&1 | grep -E '\[aot\]|Starting ImagesApplication|Started ImagesApplication' \
| sed -E 's/^[0-9T:.-]+Z +INFO 1 --- \[docker-images\] \[ +main\] com.ankurm.images.ImagesApplication +: //' | cut -c1-120
echo "exit status while running: $(docker inspect -f '{{.State.Status}}' "$name")"
docker rm -f "$name" > /dev/null
echo
done
} | tee "$OUT/aot-cache-mismatch.txt"