Сборка предназначена для разработки Битрикс и содержит контейнеры:
- php
- mysql
- nginx
- redis
- memcache
- push&pull сервер
Внимание!
Сборка рассчитана исключительно на локальную разработку. Использование в продакшене не безопасно!
- Клонируйте или скачайте репозиторий
- Конфигурация локальной установки
- Настройка сайта
Для конфигурации используете:
./mgmt/configure.sh -h
Usage: configure.sh [-vhblC] [-c /path/to/config]
Options:
-h - show this help message
-v - enable verbose mode
-c - config file (default: mgmt/CONFIG)
-b - build docker images (default: disable)
-l - local installation; created html folders
-C - disable configuration creation
По умолчанию, данный скрипт создаст два конфигурационных файла:
Файл | Описание |
---|---|
mgmt/CONFIG |
конфигурационный файл, для работы скриптов |
.env |
файл, содержащий переменные окружения для docker-compose |
Пример использования:
./mgmt/configure.sh -v -l
2020/12/21T23:26: [29311]> Start configuration of Docker Env
URL to the prepared distribution directory: http://distr.bx/distrs
The path on the Docker server where the site directories will be located: /var/bx/sites
The path on the Docker server where the modules will be located: /var/bx/modules
The directory where the bx-env project is located (/vagrant/bx-env):
Log directory: /vagrant/bx-env/logs
Enter default domain name for sites(example ksh.bx): example.bx
Enter default sitename: (default example.bx):
...
Веб сервер, который хранит бэкапы баз и файлов для тех иили иных версий Bitrix-окружения. На сервере distr.bx можно найти следующую структуру и файлы:
VERSION
|---- SITE_TYPE.zip
|---- SITE_TYPE.sql
Где SITE_TYPE.zip - это архив файлов для сайта, а SITE_TYPE.sql - это бэкап базы; VERSION - версия продукта, TYPE - тип (например, shop или b24).
Например,
ls distrs/20.200.300/
b24.sql b24.zip shopcrm.sql shopcrm.zip shop.sql shop.zip
Для создания контейнеров под сайт, определенного типа используйте следующий скрипт:
./mgmt/run_site.sh -h
Usage: run_site.sh -s site_name -p php_version -m mysql_version -a archive_name
Options:
-h - show this help message
-v - enable verbose mode
-s - site name
-p - php version (default: php72)
-m - mysql version (default: mysql57)
-a - archive name (example: 20.200.300/b24)
-c - config file (default: ./mgmt/CONFIG)
Например,
mgmt/run_site.sh -a 20.200.300/shop -p php73 -m mysql57 -s shop73.bx -v
Выполнит следующие действия:
- Скачает файлы архивов 20.200.300/shop в каталог сайта
- Поднимет все необходимые для работы контейнеры
При последюущих запусках для других сайтов:
- Перезапустит контейнер, если это требуется (например, контейнер bx-nginx при добавлении нового сайта)
- Запустит недостающие контейнеры (например, второй сайт создан с другой версией php)
Для удаления установки используете скрипт:
./mgmt/clean_all.sh
Полностью удалит все запущенные контейнеры и почистит каталог сайтов.
Для настройки используются переменные окружения, указываемые в файле .env
. Полный список можно найти в файле .env.default
.
BX_PUBLIC_HTML_PATH
путь к директории public_html, в которой содержатся директории хостов, монтируется в php и nginx контейнеры и используется для генерации хостов.
BX_MODULES_PATH
путь к репозиторию modules, требуется для работы с линкованной установкой, монтируется в php и nginx контейнеры
BX_LOGS_PATH
путь к директории в которой контейнеры должны хранить логи, монтируется в контейнеры, внутри каждый из контейнеров создаст свою папку
BX_MYSQL_ROOT_PASSWORD
пароль для root пользователя mysql
BX_XDEBUG_IP
устанавливает опцию xdebug.remote_host
BX_PUSH_SUB_HOST
хост для чтения сообщений
BX_PUSH_SUB_PORT
порт для чтения сообщений
BX_PUSH_PUB_HOST
хост для публикации сообщений
BX_PUSH_PUB_PORT
порт для публикации сообщений
BX_PUSH_SECURITY_KEY
ключ для подключения к push серверу
BX_HOST_AUTOCREATE
включает или отключает автогенерацию хостов nginx
BX_DEFAULT_HOST
хост по умолчанию, получит аттрибут default_server в конфиге nginx, оставьте пустым, если не требуется
BX_DEFAULT_LOCAL_DOMAIN
доменная зона по умолчанию, будет добавлена через точку к имени директории хоста, если директория хоста в имени не содержит доменную зону, оставьте пустым если не требуется
Каких-либо проверок или значений по умолчанию в системе нет. Если вы не укажете один или несколько параметров или вообще не создадите
.env
файл, docker-compose подставит пустые строки и выведет соответствующее уведомление.
При запуске контейнера nginx читается список директорий в public_html и для каждой создается виртуальный хост.
При запуске контейнера php-fpm, если каталог сайта содержит файлы базы и сайта (sites.zip и db.sql), они будут испльзованы как файлы сайта и для создания базы. Конфигурационные файлы будут созданы (dbconn.php и .settings.php).
Если в директории sites_enabled уже есть конфиг для какого-либо хоста, то он не будет перезаписан.
Если указана переменная BX_DEFAULT_LOCAL_DOMAIN и имя директории не содержит точку, то для каждого хоста будет автоматически добавлена доменная зона.
Если указана переменная BX_DEFAULT_HOST, то в конфигурации nginx этот хост будет отмечен хостом по умолчанию.