-15%Скидка 15% на разработку сайта или магазина при старте до конца месяца
DevOps и BitrixVM

Docker для Битрикс: единое окружение от ноутбука разработчика до продакшна

Контейнеризируем 1С-Битрикс на Docker: образы php-fpm, nginx и mysql, docker-compose для локальной разработки и продакшн-конфигурация. Окружения dev и prod совпадают, данные живут в томах, а новый разработчик стартует за один вечер вместо недели.

1 вечерна онбординг разработчика
100%паритет dev и prod
php-fpm·nginx·mysqlобразы под Битрикс
от 5 днейдо рабочего docker-compose
docker host php-fpm nginx mysql том данных · upload · база dev · ноутбукcompose up prod · сервертот же образ
Зачем контейнеризировать Битрикс

Где разработка на Битрикс теряет время без Docker

Пока окружение каждый разработчик собирает руками, а продакшн отличается от локального, команда тонет в правках «у меня работает». Docker превращает окружение в код: один и тот же образ запускается на ноутбуке и на сервере.

Новый разработчик неделю настраивает PHP, расширения и базу под Битрикс.
Команда docker-compose up поднимает всё окружение за минуты — онбординг сводится к одному вечеру.
Локально версия PHP одна, на продакшне другая — баги ловятся только в бою.
Один образ php-fpm с зафиксированными версиями и расширениями работает и на dev, и на prod.
У каждого свой набор расширений и настроек — классическое «у меня работает».
Окружение описано в Dockerfile и хранится в git — конфигурация одинакова у всей команды.
Данные и загрузки путаются при пересборке контейнеров и обновлениях.
База, файлы upload и кэш живут в именованных томах и переживают пересборку образов.
Образы тянут лишние пакеты и собираются с правами root — лишние уязвимости.
Многоэтапная сборка, минимальный базовый образ и непривилегированный пользователь по умолчанию.
Что входит

Из чего складывается контейнеризация Битрикс

Собираем окружение под вашу версию Битрикс и редакцию: от образов php-fpm, nginx и mysql до docker-compose для разработки и продакшн-конфигурации с томами и безопасностью.

Образ php-fpm под Битрикс

Версия PHP, расширения mbstring, zip, gd, opcache и параметры под требования Битрикс зафиксированы в Dockerfile.

Образ nginx с конфигом Битрикс

Правила ЧПУ, push-server, ограничение доступа к служебным путям и проксирование на php-fpm из коробки.

Контейнер mysql или mariadb

СУБД в редакции и версии, совместимой с Битрикс, с настроенной кодировкой и параметрами под нагрузку.

docker-compose для разработки

Один файл поднимает весь стек локально, монтирует код разработчика и пробрасывает порты и отладку Xdebug.

Тома для данных и загрузок

База, каталог upload, кэш и логи вынесены в именованные тома и переживают пересборку контейнеров.

Продакшн-конфигурация и безопасность

Многоэтапная сборка, непривилегированный пользователь, минимальный образ и разделение dev и prod настроек.

Как это устроено

Путь от Dockerfile до одинаковых окружений dev и prod

Образ описан в Dockerfile и собирается один раз, docker-compose поднимает стек локально, а на продакшн уходит тот же образ из реестра — данные остаются в томах.

DockerfilePHP · расширения Сборкаобраз в реестр devcompose up prodтот же образ Томабаза · upload данныесохранны Один образ — одинаковое поведение на ноутбуке и на сервере, данные вынесены в тома
Dockerfile → сборка образа → docker-compose на dev → тот же образ на prod → тома с данными.
Сравнение

Как поднять окружение Битрикс: три подхода

Сравниваем ручную настройку на каждой машине, классическую BitrixVM и контейнеризацию на Docker по тем критериям, которые реально влияют на скорость и предсказуемость разработки.

Критерий Ручная настройка у каждогоОдна BitrixVM на всехDocker (контейнеризация)
Скорость запуска Дни на машинуЧасы на стендМинуты по compose
Конфигурация Расходятся у всехЕдиное, но на сервереОписано в git
Паритет dev и prod Часто различаютсяСовпадают условноПолный паритет
Онбординг разработчика Долгий и болезненныйНужен доступ к VMОдин вечер
Надёжность Высокий риск ошибокКонфликты версийВоспроизводимо и безопасно
Эффект после контейнеризации

Что меняется в цифрах

1 вечер
вместо недели на запуск окружения новичку
−90%
багов из-за разницы dev и prod
×3
скорость развёртывания тестового стенда
−60%
размер образа после многоэтапной сборки

Ориентиры по проектам нашей команды. Точные показатели оценим на бесплатном аудите вашей разработки и инфраструктуры.

Как мы внедряем

Этапы контейнеризации Битрикс

Ведём проект так, чтобы команда не останавливала разработку: сначала локальное окружение, затем продакшн-конфигурация и перенос.

01

Аудит проекта и окружения

Разбираем версию Битрикс, редакцию, набор модулей, расширения PHP и требования к СУБД и nginx.

02

Сборка образов под Битрикс

Пишем Dockerfile для php-fpm, готовим конфиги nginx и mysql, фиксируем версии и расширения.

03

docker-compose для разработки

Собираем стек для локалки: монтаж кода, проброс портов, Xdebug, почтовая заглушка и push-server.

04

Тома, данные и переменные

Выносим базу, upload, кэш и логи в тома, разделяем dev и prod через переменные окружения.

05

Продакшн-конфигурация и безопасность

Многоэтапная сборка, непривилегированный пользователь, минимальный образ, скан уязвимостей и реестр.

06

Перенос, документация, обучение

Переносим продакшн в контейнеры, пишем README запуска и обучаем команду работе с окружением.

Сроки

Сколько занимает контейнеризация

Ориентир по типовому проекту среднего размера. Точный график зависит от версии Битрикс, числа модулей и состояния инфраструктуры.

1–2 дня Аудит проекта, версий и требований окружения
1
2–4 дня Сборка образов php-fpm, nginx и mysql под Битрикс
2
2–3 дня docker-compose для разработки и проброс Xdebug
3
2–3 дня Тома для данных, переменные dev и prod
4
3–5 дней Продакшн-конфигурация, безопасность и перенос
5
1–2 дня Документация запуска и обучение команды
6
Стоимость

Сколько стоит контейнеризация Битрикс

Стоимость зависит от версии Битрикс, числа сервисов, требований продакшна и состояния инфраструктуры. Ниже — ориентиры; точную смету присылаем после короткого аудита, бесплатно.

Локальное окружение
от 60 000 ₽
Срок: от 5 дней

docker-compose для разработки: образы и быстрый старт команды.

  • Образ php-fpm под Битрикс
  • nginx и mysql в контейнерах
  • docker-compose для локалки
  • Монтаж кода и Xdebug
  • README запуска
Популярный выбор
Dev и prod
от 140 000 ₽
Срок: от 2 недель

Паритет окружений и продакшн-конфигурация с томами и безопасностью.

  • Всё из «Локальное окружение»
  • Тома для базы и upload
  • Переменные dev и prod
  • Многоэтапная сборка образов
  • Непривилегированный пользователь
  • Перенос продакшна в контейнеры
Под нагрузку и CI/CD
от 280 000 ₽
Срок: от 4 недель

Контейнеризация с реестром, сканом уязвимостей и конвейером сборки.

  • Всё из «Dev и prod»
  • Приватный реестр образов
  • Скан уязвимостей образов
  • Сборка и деплой в CI/CD
  • Готовность к Kubernetes
  • Сопровождение и развитие
Локальное окружение от 60 000 ₽
Срок: от 5 дней

docker-compose для разработки: образы и быстрый старт команды.

  • Образ php-fpm под Битрикс
  • nginx и mysql в контейнерах
  • docker-compose для локалки
  • Монтаж кода и Xdebug
  • README запуска
Популярный Dev и prod от 140 000 ₽
Срок: от 2 недель

Паритет окружений и продакшн-конфигурация с томами и безопасностью.

  • Всё из «Локальное окружение»
  • Тома для базы и upload
  • Переменные dev и prod
  • Многоэтапная сборка образов
  • Непривилегированный пользователь
  • Перенос продакшна в контейнеры
Под нагрузку и CI/CD от 280 000 ₽
Срок: от 4 недель

Контейнеризация с реестром, сканом уязвимостей и конвейером сборки.

  • Всё из «Dev и prod»
  • Приватный реестр образов
  • Скан уязвимостей образов
  • Сборка и деплой в CI/CD
  • Готовность к Kubernetes
  • Сопровождение и развитие

Дополнительные опции

Контейнер для push-server и Sphinx от 30 000 ₽
Интеграция сборки образов в CI/CD от 60 000 ₽
Скан уязвимостей и хардненинг образов от 45 000 ₽
Расчёт выгоды

Сколько времени команды экономит Docker

Прикиньте, сколько часов уходит на настройку окружений, разбор багов «у меня работает» и онбординг — и сколько из этого снимает единое контейнерное окружение.

Экономия времени команды в месяц, ₽ 0 ₽

Оценка по формуле: разработчики × часы на окружение × стоимость часа. Это ориентир сэкономленного времени, а не гарантия. Точную картину покажем на аудите.

Умный расчёт

Соберём конфигурацию контейнеризации под ваш проект

Ответьте на несколько вопросов о версии Битрикс, числе сервисов и требованиях к продакшну — пришлём ориентир по составу работ и стоимости.

Вопрос 1
Загрузка вопроса…

Примеры работ

Кейсы контейнеризации Битрикс

Интернет-магазин

docker-compose для команды из 8 разработчиков

Перевели локальную разработку в контейнеры, онбординг нового разработчика сократился с недели до вечера.

1 вечерОнбординг
−85%Багов среды
8 днейСрок
B2B-портал

Паритет dev и prod на одном образе

Один образ php-fpm на разработке и продакшне убрал баги, которые ловились только в бою.

100%Паритет окружений
−70%Релизных откатов
2 неделиСрок
Медиапортал

Безопасные образы и сборка в CI/CD

Многоэтапная сборка и скан уязвимостей уменьшили образ и закрыли лишние пакеты, сборка ушла в конвейер.

−60%Размер образа
в CI/CDСборка
4 неделиСрок
Отзывы клиентов

Что говорят о переходе на Docker

«Раньше новый разработчик неделю собирал окружение под Битрикс. После контейнеризации запуск — это одна команда compose up. Онбординг перестал быть болью.»

Алексей Т. Тимлид, интернет-магазин

«Главное, что ушли баги в духе «у меня работает». Локально и на проде один образ, поведение одинаковое. Релизы стали предсказуемыми.»

Марина С. Руководитель разработки, B2B-портал

«Сделали продакшн-конфигурацию с томами и непривилегированным пользователем, прогнали скан образов. Стало спокойнее за безопасность, образ заметно похудел.»

Дмитрий К. CTO, медиапортал

«Понравилось, что данные вынесли в тома и пересборка контейнеров больше не грозит потерей загрузок и базы. Документация запуска понятная, команда разобралась сама.»

Игорь В. Технический директор, дистрибуция
Подробно об услуге

Docker для Битрикс: что это и зачем команде разработки

Контейнеризация 1С-Битрикс на Docker — это перевод окружения проекта из набора инструкций по ручной настройке в код, который запускается одинаково на ноутбуке разработчика и на боевом сервере. Вместо того чтобы каждый член команды вручную ставил нужную версию PHP, набор расширений, веб-сервер и СУБД, всё описывается в Dockerfile и docker-compose и хранится в git. Команда docker-compose up поднимает весь стек за минуты, а новый разработчик начинает писать код в первый же день вместо недели на сборку среды.

Битрикс предъявляет конкретные требования к окружению: определённая версия PHP, набор расширений, настройки opcache, совместимая редакция СУБД, особая конфигурация nginx с правилами ЧПУ и push-server. Когда это окружение разъезжается между машинами разработчиков и продакшном, появляется классическая проблема «у меня работает»: баг воспроизводится только в одном месте, а время уходит на разбор различий, а не на задачи. Docker фиксирует окружение в образе, поэтому поведение приложения одинаково везде.

Из чего складывается контейнеризация Битрикс

Окружение Битрикс раскладывается на несколько контейнеров, каждый из которых отвечает за свою роль. Контейнер php-fpm несёт интерпретатор PHP нужной версии с расширениями mbstring, zip, gd, opcache и параметрами под требования платформы. Контейнер nginx содержит конфигурацию с правилами ЧПУ, ограничением доступа к служебным путям, проксированием на php-fpm и поддержкой push-server. Контейнер СУБД — mysql или mariadb в совместимой версии с настроенной кодировкой. Для разработки docker-compose связывает их вместе, монтирует исходный код и пробрасывает порты и отладку.

Главные узлы контейнерного окружения Битрикс:

  • образ php-fpm с зафиксированной версией PHP и расширениями под Битрикс;
  • образ nginx с конфигурацией ЧПУ, push-server и проксированием на php-fpm;
  • контейнер mysql или mariadb в совместимой версии с настройкой кодировки;
  • docker-compose для локальной разработки с монтажом кода и Xdebug;
  • именованные тома для базы, каталога upload, кэша и логов;
  • продакшн-конфигурация с многоэтапной сборкой, минимальным образом и безопасностью.

Кому нужна контейнеризация Битрикс на Docker

Docker окупается прежде всего там, где над проектом работает команда. Когда разработчиков несколько, ручная настройка окружения у каждого превращается в постоянный источник расхождений и багов среды. Контейнеризация снимает эту нагрузку: окружение одно на всех, описано в репозитории и поднимается одной командой. Особенно заметен эффект при частом онбординге — агентствам, продуктовым командам и проектам с текучкой подрядчиков переход новичка в строй сокращается с недели до одного вечера.

Вторая большая ценность — паритет окружений dev и prod. Если локально и на бою совпадают версия PHP, расширения и конфиги, то ошибки больше не всплывают только в продакшне. Это критично для проектов с регулярными релизами и для тех, кто строит CI/CD: контейнерный образ становится единицей сборки и деплоя, а тестовые стенды поднимаются под каждую ветку за минуты. Контейнеризация — и естественный шаг к оркестрации, если в будущем планируется масштабирование в кластере.

Как устроена разработка и продакшн

Для разработки docker-compose поднимает весь стек локально, монтирует код прямо с машины разработчика, пробрасывает порты, настраивает Xdebug, почтовую заглушку и push-server. Разработчик меняет файлы в привычной IDE, а изменения сразу видны в контейнере — никакой пересборки на каждое сохранение. Для продакшна используется тот же образ приложения, собранный из общего Dockerfile, но запущенный с продакшн-настройками через переменные окружения: выключенный Xdebug, прогретый opcache, ограниченные права.

Данные при этом всегда вынесены из контейнеров в именованные тома: база, каталог upload, кэш и логи живут отдельно и переживают любую пересборку и обновление образа. Это ключевое правило — контейнер должен быть одноразовым, а состояние хранится в томах. Безопасность закладывается с первого образа: минимальный базовый слой, многоэтапная сборка, при которой сборочные пакеты не попадают в финальный образ, запуск от непривилегированного пользователя и скан уязвимостей перед публикацией в реестр.

Результат контейнеризации Битрикс — это воспроизводимое окружение, которое одинаково ведёт себя везде, быстрый онбординг разработчиков, предсказуемые релизы без багов среды и аккуратная, безопасная продакшн-конфигурация. Команда тратит время на продукт, а не на сборку и сверку окружений.

Почему мы

На что можно рассчитывать по договору

Фиксированная смета

Состав образов и конфигов закрепляем до старта, доработки сверх ТЗ — по согласованию.

Опыт именно с Битрикс

Знаем требования к PHP, расширениям, nginx и СУБД и собираем окружение под редакцию вашего Битрикс.

Безопасность образов

Минимальный базовый образ, непривилегированный пользователь и скан уязвимостей по умолчанию.

Всё в git и документации

Dockerfile, compose и README — в репозитории, без привязки к подрядчику.

База знаний

Частые вопросы о Docker для Битрикс — и наш ответ

Это не общие советы из интернета, а закономерности из реальных проектов контейнеризации Битрикс. Каждый ответ — позиция нашей команды.

Окружение

Можно ли вообще запускать Битрикс в Docker без потери производительности

Наш ответ

Да. Битрикс отлично работает в контейнерах: php-fpm, nginx и СУБД в отдельных контейнерах ведут себя как на BitrixVM. Производительность определяется ресурсами хоста и настройкой opcache и СУБД, а не самим Docker — оверхед минимален.

Данные

Не потеряются ли база и загрузки при пересборке контейнеров

Наш ответ

Нет. Базу, каталог upload, кэш и логи мы выносим в именованные тома. Контейнер можно пересобрать или обновить — данные в томах остаются на месте. Это базовое правило нашей продакшн-конфигурации.

Паритет

Как добиться, чтобы локальное окружение совпадало с продакшном

Наш ответ

Один и тот же образ собирается из общего Dockerfile и используется и на dev, и на prod. Отличия между окружениями выносятся только в переменные окружения, поэтому версия PHP, расширения и конфиги совпадают, а баги среды исчезают.

Безопасность

Как сделать образы безопасными, а не тащить весь интернет внутрь

Наш ответ

Используем минимальный базовый образ, многоэтапную сборку (сборочные пакеты не попадают в финальный образ), запуск от непривилегированного пользователя и скан уязвимостей. Так образ меньше и поверхность атаки заметно ниже.

Экспертный взгляд

Docker или BitrixVM: что выбрать для разработки и продакшна

Когда заходит речь о среде для Битрикс, обычно сравнивают два мира: привычную BitrixVM на виртуальной машине и контейнеризацию на Docker. Оба варианта рабочие, но решают разные задачи. BitrixVM — это готовая, заточенная под Битрикс сборка сервера, которую удобно поднять и забыть. Docker — это способ описать окружение как код, воспроизвести его где угодно и встроить в конвейер сборки. Ниже разбираем, где проходит граница, какие проблемы снимает контейнеризация и как мы строим окружение так, чтобы оно служило и команде, и продакшну годами.

Почему разработка на Битрикс буксует без единого окружения

Пока каждый разработчик собирает среду вручную, рост команды упирается в трение настройки. Один поставил PHP одной версии, другой — другой; у одного есть нужное расширение, у другого нет; локальные конфиги nginx расходятся, версии СУБД отличаются. В итоге половина багов — это не баги приложения, а различия окружений. Появляется знаменитое «у меня работает», когда задача проходит у одного и падает у другого. Время команды утекает в разбор сред, а не в продукт.

Чем больше людей и чем чаще меняется состав команды, тем дороже обходится этот ручной труд. Новый разработчик тратит первые дни не на код, а на сборку рабочего места. Продакшн при этом часто отличается от любой локальной машины, поэтому часть ошибок всплывает только в бою — в самый неудобный момент. Контейнеризация бьёт ровно в эту точку: окружение описывается один раз, хранится в git и одинаково запускается у всех.

Что меняет контейнеризация на Docker

С Docker окружение превращается в артефакт, а не в инструкцию. Образ php-fpm с нужной версией PHP и расширениями, образ nginx с конфигом под Битрикс, контейнер СУБД — всё собирается из Dockerfile и поднимается командой docker-compose up. Новый разработчик клонирует репозиторий, запускает compose и через минуты получает рабочее окружение, идентичное окружению коллег и продакшна. Онбординг, который занимал неделю, сжимается до одного вечера.

Главный выигрыш — паритет dev и prod. Один и тот же образ приложения используется и локально, и на сервере, а различия выносятся только в переменные окружения. Значит, поведение совпадает: если что-то работает на ноутбуке, оно работает и в продакшне. Баги среды как класс исчезают, релизы становятся предсказуемыми, а откатов из-за «неожиданно поехавшей конфигурации» больше нет. Для команды, которая выпускает обновления регулярно, это прямая экономия нервов и времени.

Чем контейнерное окружение отличается от BitrixVM

BitrixVM — это монолитная виртуалка, где все сервисы живут вместе, а настройка идёт через меню. Она отлично подходит, когда нужен один сервер под один сайт и не нужна воспроизводимость на множестве машин. Docker устроен иначе: каждый сервис — отдельный контейнер, окружение описано декларативно, а одно и то же поднимается локально, на тестовом стенде и в продакшне. Там, где BitrixVM настраивается руками и живёт на сервере, контейнерное окружение хранится в репозитории и едет вместе с кодом.

Эта разница особенно важна для команд. На BitrixVM, чтобы дать новому разработчику окружение, нужен доступ к серверу или своя копия виртуалки, а конфигурация всё равно живёт вне кода. В контейнерах окружение — часть проекта: оно версионируется, ревьюится в пул-реквестах и одинаково у всех. Поэтому для одиночного сайта BitrixVM часто проще, а для командной разработки и пути к CI/CD выигрывает Docker. На бесплатном аудите мы честно говорим, что выгоднее в вашем случае, а не продаём контейнеры всем подряд.

Локальная разработка на docker-compose

Для разработчика контейнеризация не должна усложнять жизнь — наоборот. Мы собираем docker-compose так, чтобы код монтировался прямо с машины: правишь файл в IDE — изменения сразу в контейнере, без пересборки. Пробрасываем Xdebug для пошаговой отладки, ставим почтовую заглушку, чтобы письма не уходили наружу, поднимаем push-server и при необходимости Sphinx. Получается полноценная среда Битрикс, в которой удобно работать каждый день, а не только запускать проект для галочки.

Отдельно решаем вопрос производительности на разных системах: на части машин монтаж кода через файловую систему медленнее, поэтому мы подбираем стратегию синхронизации, кэширования и настройки opcache, чтобы локалка отвечала быстро. Конфигурация остаётся одинаковой у всех, а README с парой команд описывает, как поднять и остановить окружение — даже новичок справляется сам. Если у вас уже есть процессы автоматизации сборки, контейнеризацию мы стыкуем с ними; смежные задачи закрываем услугой CI/CD и автоматизация.

Продакшн-конфигурация: данные, безопасность, надёжность

Продакшн — это не та же конфигурация, что и dev, и это нормально. Здесь выключен Xdebug, прогрет opcache, ужаты логи, а различия с разработкой заданы переменными окружения, а не отдельными образами. Самое важное правило продакшна — контейнер одноразовый, состояние снаружи. Базу, каталог upload, кэш и логи мы выносим в именованные тома, поэтому пересборка или обновление образа не трогает данные. Резервное копирование снимается с томов, а не с эфемерных контейнеров.

Безопасность образов закладывается с первого слоя. Берём минимальный базовый образ, чтобы внутрь не попадал лишний софт; применяем многоэтапную сборку, при которой компиляторы и сборочные пакеты остаются на этапе сборки и не едут в финальный образ; запускаем процессы от непривилегированного пользователя, а не от root; прогоняем образы через скан уязвимостей перед публикацией в приватный реестр. Так образ получается меньше, собирается быстрее, а поверхность атаки заметно сокращается. Если впереди масштабирование, контейнеры — готовый шаг к оркестрации: мы делаем образы совместимыми с переездом в Kubernetes для Битрикс без переписывания.

Как мы ведём проект контейнеризации

Старт — аудит. Разбираем версию и редакцию Битрикс, набор модулей, требуемые расширения PHP, параметры СУБД и особенности конфигурации nginx, а также то, как сейчас устроена разработка и продакшн. На основе этого собираем состав образов и фиксируем смету до начала работ. Дальше идём итерациями: сначала локальное окружение на docker-compose, чтобы команда сразу почувствовала пользу, затем тома и переменные, затем продакшн-конфигурация с безопасностью и перенос боевого окружения в контейнеры.

Каждый этап мы показываем на работающем окружении и проверяем на реальных сценариях: запуск сайта, обновление модулей, восстановление из бэкапа, пересборка образа без потери данных. По завершении передаём Dockerfile, docker-compose, конфиги и README прямо в репозиторий, обучаем команду работе с окружением и при необходимости остаёмся на сопровождении. Никакой привязки к подрядчику: всё окружение — это код в вашем git.

Когда хватит compose, а когда нужна оркестрация

Не каждому проекту нужен кластер. Для большинства сайтов и порталов достаточно образов и docker-compose: один-два сервера, понятная схема, простое обслуживание. Оркестрация нужна, когда появляется горизонтальное масштабирование, требования к отказоустойчивости и автоматическому восстановлению, нагрузка, которую не вывозит один узел. Хорошая новость в том, что грамотно собранные контейнеры — это уже половина пути: образы, не хранящие состояние внутри, и вынесенные тома переезжают в оркестратор без переделки. Тему роста под нагрузку мы закрываем услугой масштабирование Битрикс в Kubernetes, и контейнеризация — её фундамент.

Возражения, которые мы слышим чаще всего

«Битрикс тяжёлый, в контейнерах он будет тормозить». Оверхед самих контейнеров минимален: php-fpm, nginx и СУБД в контейнерах работают так же, как на виртуалке. Производительность определяется ресурсами хоста, настройкой opcache и СУБД — ровно тем же, чем и на BitrixVM. На практике после контейнеризации скорость не падает, а сборка и развёртывание стендов ускоряются в разы.

«У нас уже есть BitrixVM, зачем всё переделывать». Переходить целиком не обязательно. Часто мы начинаем с локального окружения для команды, оставляя продакшн на BitrixVM, а потом, когда польза очевидна, аккуратно переносим и боевую среду. Контейнеры и BitrixVM спокойно сосуществуют на этапе перехода, разработка при этом не останавливается ни на день.

«Контейнеры — это сложно для нашей команды». Сложность мы берём на себя: команда работает с парой понятных команд из README, а вся машинерия спрятана в Dockerfile и compose. Мы обучаем разработчиков, оставляем документацию и сопровождение, поэтому порог входа для команды получается ниже, чем у ручной настройки окружения, которую каждый делал по-своему.

Чем контейнеризация выгоднее ручной настройки и аренды

У команды обычно три способа получить стабильное окружение: настраивать сервер и локалки руками, арендовать управляемый хостинг с предустановленным стеком или контейнеризировать проект. Ручная настройка дешевле на старте, но дорожает с ростом команды: каждая новая машина — это часы работы и новый источник расхождений, а продакшн всё равно отличается от локального. Управляемый хостинг снимает часть забот, но навязывает свой стек и версии, плохо ложится на специфику Битрикс и держит вас в чужих рамках с ежемесячной платой.

Контейнеризация лишена этих ограничений. Окружение описывается под именно ваш Битрикс, версионируется в вашем репозитории и запускается одинаково где угодно — на ноутбуке, тестовом стенде и продакшне. Вы платите за настройку один раз, а дальше развиваете окружение вместе с проектом без аренды и привязки. Когда команда и число стендов растут, именно этот путь оказывается и дешевле в долгую, и предсказуемее по поведению, потому что среда перестаёт быть лотереей.

Что мы делаем по шагам

Чтобы проект был прозрачным, мы разбиваем его на понятные этапы с результатом на каждом. Первый — аудит: фиксируем версию и редакцию Битрикс, модули, расширения PHP, параметры СУБД и nginx, а также текущую схему разработки и продакшна. Второй — сборка образов: пишем Dockerfile для php-fpm, готовим конфиги nginx и СУБД, закрепляем версии. Третий — docker-compose для разработки: монтаж кода, проброс портов, Xdebug, почтовая заглушка и push-server, чтобы команда сразу получила удобную локалку.

Дальше выносим базу, upload, кэш и логи в именованные тома, разделяем dev и prod через переменные окружения и собираем продакшн-конфигурацию с многоэтапной сборкой, непривилегированным пользователем, минимальным образом и сканом уязвимостей. Финал — перенос боевого окружения в контейнеры, документация запуска в репозитории и обучение команды. Каждый этап проверяем на реальных сценариях: чистый запуск, обновление образа без потери данных, восстановление из бэкапа.

Гарантии и сопровождение

Состав образов и конфигов, как и стоимость, мы закрепляем до старта, а доработки сверх ТЗ согласуем отдельно — никаких сюрпризов в счёте. Перед сдачей тестируем ключевые сценарии: чистый запуск с нуля, обновление образа без потери данных, восстановление из бэкапа, поведение под продакшн-настройками. После запуска даём гарантийный период и предлагаем сопровождение: обновление образов при выходе патчей безопасности, развитие конфигурации и помощь команде. Всё окружение остаётся вашим: Dockerfile, compose, конфиги и документация лежат в вашем репозитории, и развивать их сможет как наша команда, так и любая другая.

С чего начать

Начните с разговора. Расскажите о вашем проекте на Битрикс, размере команды разработки и текущем окружении — мы проведём бесплатный аудит, покажем, что переводить в контейнеры в первую очередь, и пришлём смету в течение рабочего дня. По итогам вы получите честную картину: нужен ли вам полный переход на Docker или достаточно локального окружения для команды, какой эффект это даст и за какой срок окупится. Обсудим ваш проект — и превратим окружение Битрикс из источника боли в код, который просто работает везде одинаково.

Вопросы и ответы

Частые вопросы о Docker для Битрикс

Что такое контейнеризация Битрикс простыми словами? +

Это упаковка окружения Битрикс — PHP, веб-сервера и базы — в изолированные контейнеры, которые запускаются одинаково на любом компьютере. Вместо ручной настройки сервера вы описываете окружение в файлах и поднимаете его одной командой. Контейнер — это лёгкая запечатанная среда с приложением и всем, что ему нужно для работы.

Что такое Docker и docker-compose? +

Docker — это технология контейнеров: она запускает приложения в изолированных средах из заранее собранных образов. docker-compose — инструмент, который одним файлом описывает сразу несколько связанных контейнеров (php-fpm, nginx, mysql) и поднимает весь стек одной командой. Для локальной разработки Битрикс это основной рабочий инструмент.

Что такое образ и контейнер — в чём разница? +

Образ — это неизменяемый шаблон со средой и приложением, собранный из Dockerfile. Контейнер — это запущенный экземпляр образа. Из одного образа можно поднять много одинаковых контейнеров. Если упростить: образ как установочный диск, а контейнер — это уже работающая из него система.

Можно ли вообще запускать Битрикс в Docker? +

Да, и это распространённая практика. Битрикс прекрасно работает в контейнерах: php-fpm, nginx и СУБД разносятся по отдельным контейнерам и ведут себя так же, как на привычной BitrixVM. Нужно лишь правильно собрать образы под требования платформы — версию PHP, расширения и конфигурацию веб-сервера.

Чем Docker отличается от BitrixVM? +

BitrixVM — это готовая виртуальная машина со всеми сервисами в одной системе, настраиваемая через меню. Docker описывает окружение как код и воспроизводит его одинаково на любой машине и в продакшне. BitrixVM удобна для одиночного сайта, Docker — для командной разработки, паритета окружений и пути к CI/CD.

Как Docker ускоряет онбординг разработчиков? +

Новый разработчик клонирует репозиторий и запускает docker-compose up — через минуты у него рабочее окружение, идентичное окружению команды. Не нужно неделю ставить PHP, расширения и базу вручную. Онбординг сокращается с нескольких дней до одного вечера, а человек сразу начинает писать код.

Удобно ли разрабатывать в контейнерах каждый день? +

Да. Код монтируется прямо с вашей машины, поэтому правки в IDE сразу видны в контейнере без пересборки. Мы пробрасываем Xdebug для отладки, ставим почтовую заглушку и поднимаем push-server. Получается полноценная среда Битрикс, в которой работать комфортно, а не просто запускать проект.

Что делать с медленным монтажом кода на некоторых системах? +

На части операционных систем монтаж кода через файловую систему медленнее. Мы подбираем стратегию синхронизации и кэширования, настраиваем opcache и параметры монтажа, чтобы локальное окружение отвечало быстро. Это решаемая задача, и мы закладываем её в настройку compose.

Можно ли работать с Xdebug в контейнере? +

Да. Мы настраиваем Xdebug в образе для разработки и пробрасываем порт так, чтобы IDE цеплялась к контейнеру для пошаговой отладки и брейкпоинтов. В продакшн-образе Xdebug выключен, чтобы не влиять на производительность. Различие между средами задаётся переменными окружения.

Что значит «паритет окружений dev и prod»? +

Это когда локальное окружение и продакшн совпадают по версии PHP, расширениям и конфигурации. Достигается тем, что и там, и там используется один образ из общего Dockerfile, а отличия выносятся только в переменные окружения. В результате баги, которые раньше всплывали лишь на бою, исчезают — поведение одинаково везде.

Какие образы нужны для Битрикс? +

Обычно три основных: php-fpm с нужной версией PHP и расширениями под Битрикс, nginx с конфигурацией ЧПУ и проксированием на php-fpm, и контейнер mysql или mariadb в совместимой версии. При необходимости добавляем контейнеры для push-server, Sphinx и почтовой заглушки на разработке.

Какие расширения PHP закладываются в образ? +

Те, что требует Битрикс: mbstring, zip, gd, opcache, расширение для работы с СУБД и другие в зависимости от модулей проекта. Все они фиксируются в Dockerfile вместе с версией PHP, поэтому набор расширений одинаков у всей команды и на продакшне — это и убирает баги среды.

mysql или mariadb — что выбрать для контейнера? +

Зависит от требований вашего проекта и текущей базы. Мы берём ту СУБД и версию, что совместима с вашим Битрикс и текущими данными, настраиваем кодировку и параметры под нагрузку. И mysql, и mariadb прекрасно работают в контейнере; выбор делаем на аудите по вашей конфигурации.

Как настраивается nginx для Битрикс в контейнере? +

Кладём в образ nginx конфигурацию с правилами ЧПУ, ограничением доступа к служебным путям, проксированием запросов на php-fpm и поддержкой push-server. По сути это та же проверенная конфигурация, что и на сервере, но зафиксированная в образе и одинаковая на всех окружениях.

Можно ли добавить push-server и Sphinx? +

Да. push-server для модуля «Пуш и Уведомления» и Sphinx для поиска выносятся в отдельные контейнеры и подключаются к стеку через docker-compose. Это типовое дополнение; мы добавляем их, когда модули используются в проекте, чтобы среда полностью повторяла продакшн.

Не потеряются ли данные при пересборке контейнера? +

Нет. Базу, каталог upload, кэш и логи мы выносим в именованные тома. Контейнер — одноразовый, а состояние хранится снаружи, в томах. Поэтому образ можно пересобрать или обновить сколько угодно раз — данные останутся на месте. Это базовое правило нашей продакшн-конфигурации.

Что такое том для данных и зачем он нужен? +

Том — это область хранения вне контейнера, которая живёт независимо от его жизненного цикла. В томах держат то, что должно сохраняться: базу, загруженные файлы, кэш. Если данные хранить внутри контейнера, они исчезнут при его пересоздании; тома решают эту проблему и упрощают резервное копирование.

Чем продакшн-конфигурация отличается от dev? +

В продакшне выключен Xdebug, прогрет opcache, ужаты логи, ограничены права и заданы боевые параметры через переменные окружения. Образ при этом тот же, что и на разработке, — меняются только настройки окружения. Так сохраняется паритет, но среда оптимизирована под нагрузку и безопасность.

Как обеспечивается безопасность образов? +

Берём минимальный базовый образ, применяем многоэтапную сборку (сборочные пакеты не попадают в финальный образ), запускаем процессы от непривилегированного пользователя вместо root и прогоняем образы через скан уязвимостей перед публикацией в приватный реестр. Так образ меньше, а поверхность атаки заметно ниже.

Что такое многоэтапная сборка образа? +

Это приём, при котором сборка идёт в одном промежуточном слое с компиляторами и инструментами, а в финальный образ копируется только готовый результат без сборочного мусора. В итоге продакшн-образ получается меньше по размеру, быстрее тянется и безопаснее, потому что не несёт лишних пакетов.

Сколько стоит контейнеризация Битрикс? +

Локальное окружение на docker-compose обычно начинается от 60 000 рублей, паритет dev и prod с продакшн-конфигурацией — от 140 000. Цена зависит от версии Битрикс, числа сервисов и требований продакшна. Точную смету присылаем после короткого аудита, бесплатно.

За какой срок реально контейнеризировать проект? +

Локальное окружение для команды поднимаем от 5 дней, полный переход с паритетом dev и prod и переносом продакшна — от 2 недель. Срок зависит от версии Битрикс, числа модулей и состояния инфраструктуры. Мы фиксируем график в смете до старта работ.

Можно ли переходить на Docker поэтапно? +

Да, это рекомендуемый путь. Начинаем с локального окружения для команды, оставляя продакшн на BitrixVM. Когда польза очевидна, аккуратно переносим и боевую среду. Контейнеры и BitrixVM сосуществуют на этапе перехода, и разработка не останавливается ни на день.

Контейнеры замедлят Битрикс на продакшне? +

Нет. Оверхед самих контейнеров минимален: php-fpm, nginx и СУБД в контейнерах работают так же, как на виртуалке. Скорость определяется ресурсами хоста, настройкой opcache и СУБД — тем же, что и на BitrixVM. На практике производительность не падает, а развёртывание стендов ускоряется.

Контейнеризация — это шаг к Kubernetes? +

Да. Грамотно собранные образы без состояния внутри и вынесенные тома переезжают в оркестратор без переписывания. Для большинства проектов хватает docker-compose, но если впереди масштабирование под нагрузку и отказоустойчивость, контейнеризация становится фундаментом для переезда в Kubernetes.

Что мы получаем по итогу проекта? +

Dockerfile, docker-compose, конфиги nginx и СУБД и README запуска прямо в вашем репозитории, перенесённое в контейнеры окружение и обученную команду. Всё остаётся вашим без привязки к подрядчику — развивать окружение сможет как наша команда, так и любая другая.

Начать проект

Обсудим контейнеризацию вашего Битрикс?

Расскажите о проекте и команде разработки — проведём бесплатный аудит, предложим состав работ по Docker и пришлём смету в течение рабочего дня.

  • Ответим в течение рабочего дня
  • Бесплатный аудит процессов и расчёт
  • NDA и фиксированная смета