Skip to content

reynholm/bx-env

Folders and files

NameName
Last commit message
Last commit date

Latest commit

bd84f89 · May 5, 2024

History

79 Commits
Oct 20, 2020
Apr 26, 2022
Oct 21, 2021
Mar 1, 2024
Mar 1, 2024
Mar 1, 2024
Jul 24, 2023
Feb 25, 2020
May 5, 2024
Jan 9, 2024
Mar 2, 2024
Dec 28, 2023

Repository files navigation

BXEnv

Назначение

Сборка предназначена для разработки Битрикс и содержит контейнеры:

  • php
  • mysql
  • postgresql
  • nginx
  • redis
  • memcache
  • push&pull сервер
  • fakesmtp

Внимание!
Сборка рассчитана исключительно на локальную разработку. Использование в продакшене не безопасно!

Быстрый старт

  1. Клонируйте или скачайте репозиторий
  2. Скопируйте содержимое файла .env.default в файл .env
  3. В файле .env внесите необходимые изменения
  4. Выполните команду docker-compose up

Конфигурирование

Для настройки используются переменные окружения, указываемые в файле .env. Полный список можно найти в файле .env.default.

BX_PUBLIC_HTML_PATH
путь к директории public_html, в которой содержатся директории хостов, монтируется в php и nginx контейнеры и используется для генерации хостов.

BX_MODULES_PATH
путь к репозиторию modules, требуется для работы с линкованной установкой, монтируется в php и nginx контейнеры

BX_LOGS_PATH
путь к директории в которой контейнеры должны хранить логи, монтируется в контейнеры, внутри каждый из контейнеров создаст свою папку

BX_MYSQL_IMAGE
образ для контейнера mysql, по умолчанию используется percona:5.7, но можно использовать mysql, в т.ч. mysql:8

BX_MYSQL_ROOT_PASSWORD
пароль для root пользователя mysql

BX_MYSQL_PORT
порт на котором mysql будет доступен извне, по умолчанию 3306

BX_XDEBUG_IP
устанавливает опцию xdebug.client_host

BX_XDEBUG_PORT
устанавливает опцию xdebug.client_port

BX_DEFAULT_CHARSET
кодировка по умолчанию для php

BX_HTTP_PORT
BX_HTTPS_PORT
порты на которых будет доступен веб сервер

BX_CONTAINER_UID
BX_CONTAINER_GID
пользователь и группа от имени которого будут работать php и nginx

BX_UPDATE_HOST
добавляет указанную строку в extra_hosts директиву docker-compose конфига (затем попадет в /etc/hosts php контейнера)
формат: "updates.lan:192.168.0.100"
необходимо, если используете локальный сервер обновлений, скрытый за VPN
оставьте пустой, если не требуется

Настройки push&pull сервера

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 и для каждой создается виртуальный хост.
Если в директории sites_enabled уже есть конфиг для какого-либо хоста, то он не будет перезаписан.
Если указана переменная BX_DEFAULT_LOCAL_DOMAIN и имя директории не содержит точку, то для каждого хоста будет автоматически добавлена доменная зона.
Если указана переменная BX_DEFAULT_HOST, то в конфигурации nginx этот хост будет отмечен хостом по умолчанию.

Перехват почты

Сборка содержит fakesmtp сервер, позволяющий перехватывать отправляемые почтовые уведомления. Реальной доставки писем в этом случае не происходит, письма попадают только в локальную БД.

BX_SMTP_WEB_PORT
порт для веб страницы со списком писем
кроме того, по адресу /swagger-ui/index.html на этом порту будет доступна Swagger документация с описанием REST API

BX_SMTP_REST_PORT
порт для запросов к REST API

BX_SMTP_PORT=5025
порт smtp для отправки писем

BX_SMTP_FROM
адрес отправителя по умолчанию

Для перехвата почты используется контейнер с fakesmtp сервером https://github.com/gessnerfl/fake-smtp-server. В контейнере с php в качестве sendmail'а указан msmtp с соответствующими настройками.
Это значит, что перехватываться будут только письма на установках без специально настроенного SMTP сервера.

Кроме этого можно достучаться до fakesmtp и явным образом:
host: fakesmtp
port: 5025 (по умолчанию, если не изменили)
auth: no

Внимание!
fakesmtp не имеет постоянного хранилища, все данные в нем будут уничтожены при рестарте контейнера.

PHPUnit

В контейнере php-fpm установлен пакет PHPUnit.
Файл phpunit.xml создается на хост машине
Путь к phpunit.phar: /var/composer/vendor/bin/phpunit
Путь к bootstrap: /media/bitrix/modules/bxtest/tests/.bootstrap.php

About

Bitrix env

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published