The gap
Every project reinvents its Docker setup: containers that create root-owned files, services that start before the database is ready, ports open on every interface, unpinned images that change under you and a page of docker compose commands nobody remembers.