В проектах часто есть набор повторяющихся команд. Запустить тесты, собрать образ, применить миграции или открыть shell.
Держать всё в голове не удобно. А с помощью Makefile можно приварить их в короткие сценарии.
Начнём с понятной цели для логов:
logs:
docker compose logs -f app
Таб перед командой важен. В Makefile команда внутри target должна начинаться именно с tab.
Добавим перезапуск сервиса:
restart:
docker compose restart app
Для проверки можно сделать отдельный target:
check:
docker compose config
docker compose ps
Теперь команды становятся короче:
make logs
make restart
make check
Для deploy лучше добавить dry-run или отдельный подготовительный шаг, чтобы случайно не выполнить опасную команду.
Например, можно сначала показать текущий git commit:
release-info:
git rev-parse --short HEAD
git status --short
Такой Makefile не заменяет CI/CD, но сильно снижает ручную работу. Особенно в маленьких командах, где одни и те же операции часто выполняют разные люди.
➡️ DevOps Ready | #практика