# WebLab Дз по лекциям ## Быстрый старт ```sh make setup ``` Или: ```bash make init # создать .env (+UID/GID) make build # сборка образа make up # запустить контейнеры make composer # установить зависимости make migrate # применить миграции ``` Приложение: Порт задается `APP_PORT` в `.env` (по умолчанию 8090) ## Команды | Команда | Описание | |-------------------------|--------------------------------------------------------------| | `make help` | Показать список всех команд | | `make init` | Создать `.env` из `.env.example`, подставить UID/GID | | `make build` | Собрать Docker-образы | | `make up` | Запустить контейнеры в фоне | | `make down` | Остановить контейнеры | | `make ps` | Показать состояние контейнеров | | `make logs` | Логи контейнеров в реальном времени | | `make clean` | Остановить контейнеры и удалить данные PostgreSQL (`-v`) | | `make setup` | Быстрый старт: init + build + up + composer + migrate | | `make composer` | `composer install` внутри контейнера | | `make migrate` | Применить миграции (`php bin/migrate up`) | | `make migrate-status` | Статус миграций (`php bin/migrate status`) | | `make migrate-rollback` | Откатить последнюю миграцию (`php bin/migrate down`) | | `make sh` | Shell внутри контейнера приложения | | `make psql` | Подключиться к PostgreSQL | ## Логи Каждый HTTP-запрос логируется с `method`, `uri`, `status`, `body`. - Консоль: `docker compose logs app` - Файлы: `app/storage/logs/app-*.log` (ротация 7 дней) ## Структура ``` ├── compose.yaml # сервисы db и app ├── .env.example ├── Makefile ├── docker/php/ # Dockerfile и php.ini └── app/ # PHP-код (монтируется в контейнер) ├── public/ # index.php, router.php ├── src/ # исходники ├── bin/ # мигратор ├── database/ # миграции └── storage/logs/ # логи ``` ## Технологии - PHP 8.5 (`php:8.5-cli`, встроенный сервер) - Eloquent — illuminate/database 12 (standalone) - Monolog 3 - PostgreSQL 18 (`postgres:18-alpine`) - Docker Compose v2