Files
webl/Makefile
T

86 lines
3.3 KiB
Makefile
Raw Normal View History

2026-10-11 04:30:05 +03:00
.DEFAULT_GOAL := help
ifneq (,$(wildcard .env))
include .env
export
endif
2026-10-12 04:32:01 +03:00
.PHONY: help init build up down ps logs clean setup composer migrate migrate-status migrate-rollback keygen config-show sh psql
2026-10-11 04:30:05 +03:00
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)"
2026-10-12 04:32:01 +03:00
@echo " make keygen - сгенерировать APP_KEY (php bin/config keygen)"
@echo " make config-show - показать итоговый конфиг (php bin/config show)"
2026-10-11 04:30:05 +03:00
@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
2026-10-12 04:32:01 +03:00
keygen:
@KEY=$$(docker compose exec -T app php bin/config keygen | head -n1); \
sed -i.bak -e "s|^APP_KEY=.*|APP_KEY=$$KEY|" .env && rm -f .env.bak; \
echo "APP_KEY обновлён в .env. Перезапусти app: make up (старые enc:-значения нужно перешифровать)"
config-show:
docker compose exec app php bin/config show
2026-10-11 04:30:05 +03:00
sh:
docker compose exec app sh
psql:
docker compose exec db psql -U $(POSTGRES_USER) -d $(POSTGRES_DB)