.DEFAULT_GOAL := help ifneq (,$(wildcard .env)) include .env export endif .PHONY: help init build up down ps logs clean setup composer migrate migrate-status migrate-rollback sh psql help: @echo "Доступные команды:" @echo " make init - создать .env из .env.example и подставить UID/GID текущего пользователя" @echo " make build - собрать Docker-образы (docker compose build)" @echo " make up - запустить контейнеры в фоне (docker compose up -d)" @echo " make down - остановить контейнеры (docker compose down)" @echo " make ps - показать состояние контейнеров (docker compose ps)" @echo " make logs - показать логи контейнеров в реальном времени" @echo " make clean - остановить контейнеры и УДАЛИТЬ данные PostgreSQL (docker compose down -v)" @echo " make setup - быстрый старт: init + build + up + composer + migrate" @echo " make composer - установить PHP-зависимости (composer install в контейнере)" @echo " make migrate - применить миграции базы данных (php bin/migrate up)" @echo " make migrate-status - показать статус миграций (php bin/migrate status)" @echo " make migrate-rollback - откатить последнюю миграцию (php bin/migrate down)" @echo " make sh - открыть shell в контейнере приложения" @echo " make psql - подключиться к PostgreSQL (psql)" init: @if [ -f .env ]; then \ echo ".env уже существует"; \ else \ cp .env.example .env; \ echo ".env создан из .env.example"; \ fi @sed -i.bak -e "s/^UID=.*/UID=$$(id -u)/" -e "s/^GID=.*/GID=$$(id -g)/" .env && rm -f .env.bak @echo "UID/GID обновлены: UID=$$(id -u) GID=$$(id -g)" build: docker compose build up: docker compose up -d down: docker compose down ps: docker compose ps logs: docker compose logs -f clean: @echo "Удаление контейнеров и БД (volume pgdata)" docker compose down -v setup: init build up composer migrate @echo "Готово: http://localhost:$${APP_PORT:-8080}" composer: docker compose exec -u www-data app composer install migrate: docker compose exec app php bin/migrate up migrate-status: docker compose exec app php bin/migrate status migrate-rollback: docker compose exec app php bin/migrate down sh: docker compose exec app sh psql: docker compose exec db psql -U $(POSTGRES_USER) -d $(POSTGRES_DB)