codeman@1.24.4
Patch Changes
-
The Compose deployment image ships the Docker CLI instead of the whole Docker engine.
docker/server.Dockerfileinstalled Debian'sdocker.ioto get a client for the mounted
host socket. That package is the full engine: even with--no-install-recommendsit
pulls 15 packages including containerd, runc, dmsetup and iptables, none of which a
container that only talks to a socket can use. It also ships Docker 20.10.24, from 2023.The CLI and the buildx plugin are now copied from the official
docker:29-cliimage
instead. Measured on the samenode:22-bookworm-slimbase: 266 MB → 108 MB, a 158 MB
saving, with the current CLI (29.7.2) in place of a two-year-old one.Verified by building the real image and running it: the binaries are static Go builds, so
they work on this glibc image even though they come from an Alpine one, anddocker --version,docker psanddocker buildall succeed against a mounted host socket as
the unprivileged runtime user. buildx is copied deliberately —scripts/build-agent-image.mjs
shells out todocker buildand Codeman auto-builds the agent image on the first Docker
case, which without the plugin falls back to the classic builder Docker has deprecated.
docker-composeis not copied; Codeman never shells out to it.