pnd8_rasp/README.md

113 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Bambolo App — Dockerized Development & Production Environment
## 📦 Структура контейнеров (Docker Compose)
| Сервис | Назначение |
|--------------------|----------------------------------------------------------------------------|
| `php` | Основной PHP-FPM backend, обрабатывает web-запросы |
| `php-cron` | Контейнер для выполнения cron задач (в dev-среде — неактивен) |
| `bambolo-worker` | Gearman-воркер для фоновых задач |
| `nginx` | Веб-сервер с SSL (Let's Encrypt или self-signed) |
| `mariadb` | База данных MariaDB 10.6 |
| `memcached` | Кэш-сервер |
| `gearman` | Сервер очередей задач Gearman |
| `manticore_search` | Поисковый движок Manticore (основные индексы) |
| `manticore_logs` | Manticore для realtime-логов |
| `certbot` | Автоматическое продление SSL-сертификатов от Let's Encrypt |
---
## 🗂 Структура проекта
```text
.
├── app/ # Код проекта (монтируется в контейнеры)
│ └── www/ # Публичная директория
│ └── index.php
├── config/
│ ├── php/ # Конфигурация PHP (php.ini, extensions)
│ ├── cron/ # Файлы cron для php-cron контейнера
│ ├── nginx/ # nginx конфиги по средам
│ ├── certs/ # SSL сертификаты Let's Encrypt
│ └── manticore_search/ # Конфиг поиска
│ └── manticore_logs/ # Конфиг поиска для realtime
├── db/
│ ├── mysql/ # Том для MariaDB
│ ├── init/ # SQL-инициализация базы
│ ├── manticore_search/ # Данные поиска
│ └── manticore_logs/
├── logs/ # Логи всех сервисов
├── sessions/ # Сессии PHP
├── docker/ # Dockerfile'ы и entrypoint-скрипты
│ ├── dockerfile_php
│ ├── dockerfile_cron
│ ├── dockerfile_worker
│ └── entrypoints/
│ └── ...
├── .env # Переменные окружения
├── docker-compose.yml
└── README.md
```
---
## 🚀 Как пользоваться
### 1. Сборка контейнеров
```bash
docker-compose build php-base
docker-compose build
```
### 2. Запуск окружения
```bash
docker-compose up -d
```
При первом запуске нужно не забыть сделать
```bash
composer update
```
### 3. Переменные окружения (`.env`)
```ini
APP_ENV=dev # или prod
MYSQL_ROOT_PASSWORD=root
MYSQL_DATABASE=bambolo
MYSQL_USER=bambolo
MYSQL_PASSWORD=secret
```
### 4. Cron и воркеры
- В `APP_ENV=dev`:
- `php-cron` спит (`tail -f /dev/null`)
- `bambolo-worker` можно тоже "усыпить" при необходимости
- В `prod`: запускается cron + воркеры через `command:` с проверкой переменной окружения
---
## 🧪 Полезные команды
```bash
docker-compose exec php bash # доступ внутрь PHP
docker-compose exec mariadb mysql -u... # консоль базы
docker-compose logs -f manticore_search # логи поиска
docker-compose run --rm php-cron sh # отладка cron
```
---
## 🛡 Защита от случайных обновлений
Все образы используют зафиксированные версии (`nginx:1.24.0`, `mariadb:10.6.16`, и т.д.), чтобы избежать неожиданных изменений при `docker pull`.
---
## 🤝 Авторы
Bambolo Dev Team, 2025