docker
- Your GraalVM Version Is the Other Number
Which GraalVM to build native images with in 2026, what the free edition lacks, and why the image tag shows the JDK version, not GraalVM's.
- The test rig was the unsafe part
A suite that tells six coding agents to run rm -rf and docker system prune had a throwaway HOME and bwrap --unshare-net. Neither isolated what it needed to.
- Simulate a cold start without rebooting or drop_caches
Evict one file from the Linux page cache as a normal user with posix_fadvise, prove it with fincore, and start a container that reads it cold.
- The Config I Measured Was Not the Config That Ran
A Spring Boot native image never got its telemetry config file, and optional: kept quiet. Plus a compose run that swapped the app before a load test.
- Stop docker compose from orphaning anonymous volumes
Run docker compose rm -fsv, then down, in the script's EXIT trap: anonymous volumes go with their containers, named volumes stay.
- Measure real btrfs disk use without sudo
Get the real on-disk size of a btrfs path, after compression and reflinked copies, by running the host's compsize in a rootful Docker container.
- I kept measuring the thing next door
Two days of destructive disk cleanup on my workstation: what I misread, what a review of the plan caught, and the one mistake no measurement could catch.
- Docker's image age is somebody else's clock
A Docker cleanup aged images by their build date. 71 of the 93 images it removed had been pulled within the month.
- 12.4 GB of duplicates, 3.4 GB on disk
On compressed btrfs, du and a duplicate finder overstated what deleting would free, and a permission error hid 15.8 GB. compsize, without sudo, told the truth.
- A Broken AOT Cache Still Serves 200
By default the JVM logs one error and keeps running when its AOT cache is broken, so a Leyden tier without AOTMode=on can measure plain java -jar.