Sign inSign up

msav/bitrix-mariadb

By msav

•Updated 3 months ago

MariaDB образы (10.6/10.11/11.8) для 1C-Битрикс CMS и Битрикс24

Image
Databases & storage
0

2.2K

msav/bitrix-mariadb repository overview

⁠MariaDB для 1C-Битрикс

Docker-образы MariaDB с вшитой конфигурацией для 1C-Битрикс CMS и Битрикс24: обязательные параметры совместимости, кодировка UTF8MB4 и настройки InnoDB под типовые профили памяти.

⁠Поддерживаемые теги

ТегБазовый образНазначение
11.8, latestmariadb:11.8LTS, рекомендуемая версия для новых проектов
10.11mariadb:10.11LTS, стабильная альтернатива
10.6mariadb:10.6Legacy, только для устаревших проектов

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

⁠Docker Run
docker run -d \
  --name bitrix-db \
  -p 3306:3306 \
  -e MYSQL_ROOT_PASSWORD=rootpwd \
  -e MYSQL_DATABASE=bitrix \
  -e MYSQL_USER=bitrix \
  -e MYSQL_PASSWORD=bitrixpwd \
  -v bitrix-db-data:/var/lib/mysql \
  msav/bitrix-mariadb:11.8
⁠Docker Compose
services:
  db:
    image: msav/bitrix-mariadb:11.8
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: "rootpwd"
      MYSQL_DATABASE: "bitrix"
      MYSQL_USER: "bitrix"
      MYSQL_PASSWORD: "bitrixpwd"
    volumes:
      - db-data:/var/lib/mysql
      - ./my-custom.cnf:/etc/mysql/bitrix.d/custom.cnf

volumes:
  db-data:

⁠Переменные окружения

ПеременнаяОбязательностьОписание
MYSQL_ROOT_PASSWORDОбязательнаПароль root; также используется в health check
MYSQL_DATABASEОпциональноИмя создаваемой базы
MYSQL_USERОпциональноИмя создаваемого пользователя
MYSQL_PASSWORDОпциональноПароль создаваемого пользователя

Часовой пояс задаётся на этапе сборки через build-arg SITE_TIMEZONE (по умолчанию Europe/Moscow) и пробрасывается в ENV TZ.

⁠Конфигурация MariaDB

Обязательные параметры совместимости с Битрикс вшиты в образ:

ПараметрЗначениеЗачем
sql_mode""Иначе ошибки вставки и обновления данных
transaction-isolationREAD-COMMITTEDОжидаемый платформой уровень изоляции
innodb_snapshot_isolationOFFИначе ER_CHECKREAD (ERROR 1020) под нагрузкой на MariaDB 11.6.2/11.8
max_allowed_packet256MБольшие пакеты при импорте и обмене с 1С
innodb_strict_modeOFFСнимает строгую проверку схем таблиц
explicit_defaults_for_timestamp1Стандартное поведение TIMESTAMP

Кодировка: character-set-server = utf8mb4, collation-server = utf8mb4_unicode_ci, init-connect = "SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci".

Любой параметр переопределяется без пересборки: смонтируйте свой .cnf в /etc/mysql/bitrix.d/ — файлы оттуда загружаются после вшитой конфигурации и имеют наивысший приоритет.

⁠Development vs Production

В образ вшита production-конфигурация. Для разработки смонтируйте bitrix-dev.cnf в /etc/mysql/bitrix.d/.

ПараметрDevelopmentProduction
innodb_buffer_pool_size512M4G
innodb_log_file_size128M512M
innodb_buffer_pool_instances24
innodb_flush_log_at_trx_commit21
slow_query_log10

Профили innodb_buffer_pool_size по объёму ОЗУ хоста:

RAM хостаinnodb_buffer_pool_sizeinstances
4 GB2G2
8 GB4G4
16 GB и больше12G12

⁠Тома

ПутьНазначение
/var/lib/mysqlДанные базы
/etc/mysql/bitrix.dПользовательские переопределения конфигурации

⁠Порты

ПортПротокол
3306MySQL/MariaDB

⁠Health Check

Каждые 30 секунд выполняется команда ping от имени root с паролем из MYSQL_ROOT_PASSWORD: mariadb-admin ping в 11.8 и 10.11, mysqladmin ping в 10.6. Без MYSQL_ROOT_PASSWORD контейнер будет помечен unhealthy.

⁠Решение проблем

СимптомРешение
Ошибки вставки/обновления данныхУбедиться, что итоговый sql_mode пустой
ERROR 1020 (ER_CHECKREAD) на 11.8Проверить, что innodb_snapshot_isolation = OFF не переопределён
Контейнер unhealthyЗадать MYSQL_ROOT_PASSWORD
Нехватка памяти, медленный InnoDBПодобрать innodb_buffer_pool_size по ОЗУ хоста
Искажение символовПроверить кодировку подключения (UTF8MB4)

⁠Ссылки

Tag summary

Content type

Image

Digest

sha256:801955961…

Size

105.4 MB

Last updated

3 months ago

docker pull msav/bitrix-mariadb