Files
webl/Makefile
T
2026-10-11 04:30:05 +03:00

76 lines
2.8 KiB
Makefile

.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)