El enfoque de make dev está bien, pero si cambias de proyecto tienes que reescribir el Makefile. Por eso prefiero usar task (https://taskfile.dev) con un Taskfile.yml versionado en cada repo. Además, combinado con pre-commit hooks para linting y pruebas antes de cada build, eliminas errores tontos. Sobre lazydocker, coincido en que es overkill, pero para debugging rápido de volúmenes o redes, un docker inspect formateado con --format es más directo. ¿Alguien ha probado declarar healthchecks en los servicios para que docker-compose espere a que estén listos antes de continuar? Eso me ahorró reintentos manuales.