2025-11-26 18:41:43 +03:00
2025-11-19 16:31:11 +03:00
2025-11-13 12:22:20 +03:00
2025-11-19 16:31:11 +03:00
2025-11-13 12:22:20 +03:00
2025-11-13 12:22:20 +03:00
2025-11-13 12:22:20 +03:00
2025-11-13 12:22:20 +03:00
2025-11-13 12:22:20 +03:00
2025-11-13 12:22:20 +03:00
2025-11-13 12:22:20 +03:00
2025-11-26 18:41:43 +03:00

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
No description provided
Readme 7.7 MiB
Languages
JavaScript 28.5%
CSS 27.9%
PHP 26.6%
SCSS 12.2%
HTML 2.8%
Other 2%