2026-10-11 04:30:05 +03:00
|
|
|
# WebLab
|
|
|
|
|
|
|
|
|
|
Дз по лекциям
|
|
|
|
|
|
|
|
|
|
## Быстрый старт
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
make setup
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Или:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
make init # создать .env (+UID/GID)
|
|
|
|
|
make build # сборка образа
|
|
|
|
|
make up # запустить контейнеры
|
|
|
|
|
make composer # установить зависимости
|
|
|
|
|
make migrate # применить миграции
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Приложение: <http://localhost:8090>
|
|
|
|
|
|
|
|
|
|
Порт задается `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
|