The default logging driver writes to a JSON file that grows without bound, so a chatty container will fill the host disk over a fortnight and nothing warns…
The old builder executes every instruction in order on one goroutine. BuildKit builds a graph, runs independent branches concurrently, and skips stages nothing depends on. The concurrency is…
Docker caches per instruction, and the cache is invalidated by the first changed file. Copying the whole source before installing dependencies means every code change reinstalls everything. The…
A healthcheck describes how to tell whether this particular software is working, which is knowledge that belongs with the image rather than with each stack that uses it.…
Apache, Nginx, PHP, MySQL, Redis, Beanstalkd and a mail catcher, on a laptop. Onboarding measured in minutes rather than days, and what it costs to run.
Beanstalkd is a queue and nothing else — no persistence by default, no clustering, no management UI — which makes it about the smallest thing that is genuinely…
Every build begins by sending the build context to the daemon, and without a .dockerignore that context is the whole directory — including node_modules, the .git history and…