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 |
🗂 Структура проекта
.
├── 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. Сборка контейнеров
docker-compose build php-base
docker-compose build
2. Запуск окружения
docker-compose up -d
При первом запуске нужно не забыть сделать
composer update
3. Переменные окружения (.env)
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:с проверкой переменной окружения
🧪 Полезные команды
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
Description
Languages
JavaScript
28.5%
CSS
27.9%
PHP
26.6%
SCSS
12.2%
HTML
2.8%
Other
2%