Как развернуть 1С-Битрикс в Docker локально — пошаговое руководство с использованием bitrix-docker/server

Как развернуть 1С-Битрикс в Docker локально — пошаговое руководство с использованием bitrix-docker/server
18 октября 2025
4 мин.
312
18 октября 2025

Практическая инструкция для разработчиков: как быстро развернуть локальный стек 1С‑Битрикс в Docker, настроить .env, собрать и запустить docker compose, установить дистрибутив Bitrix и избежать типичных ловушек производительности и прав.

Почему локальный Docker — это удобно для 1С‑Битрикс

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

Что такое bitrix‑docker/server и чем он полезен

bitrix‑docker/server — это готовый стек контейнеров для проектов на 1С‑Битрикс: PHP‑FPM, Nginx, база данных (MySQL/MariaDB или PostgreSQL), кеш (Redis/Memcached), отдельный контейнер для cron, инструменты логирования и почтовый сервис для разработки. Подход рассчитан на работу «из коробки», при этом конфигурации прозрачно меняются через .env и docker-compose.yml.

Проект активно развивается сообществом, что важно для актуальности образов и совместимости: регулярно обновляются конфигурации, добавляются полезные сервисы (почтовые заглушки, сбор и просмотр логов), исправляются мелкие баги и шероховатости.

Подготовка окружения: что нужно сделать заранее

Установите Docker и Docker Compose

Проверьте, что Docker установлен и запускается, а compose доступен:

docker --version
docker compose version

Если у вас старая бинарь docker-compose, команды будут аналогичны.

Подготовьте рабочую папку проекта

Создайте директорию для локального окружения (например, ~/projects/bitrix-docker/myproject) и клонируйте туда репозиторий bitrix‑docker/server или добавьте его как подмодуль/шаблон для ваших проектов.

git clone https://gitlab.com/bitrix-docker/server.git .

Сконфигурируйте .env

Скопируйте .env.example в .env и аккуратно пройдитесь по ключевым переменным:

  • Домены для локального доступа (например, myproject.local).
  • Порты сервисов (HTTP/HTTPS, БД, почта), чтобы не конфликтовали с работающими на хосте.
  • Версии PHP и СУБД, включение Redis/Memcached и др.
  • Настройки томов (куда монтируем код, куда складываются данные баз).

Ошибки в .env — частая причина того, что окружение «не поднимается».

Настройте hosts и проверьте свободные порты

Добавьте домен(ы) проекта в /etc/hosts127.0.0.1 myproject.local. Убедитесь, что указанные порты не заняты локальными сервисами.

Apple Silicon (ARM64)

Если вы на macOS с чипом M‑series, при проблемах со сборкой/запуском образов временно укажите платформу по умолчанию: DOCKER_DEFAULT_PLATFORM=linux/amd64.env или в окружении), а далее подбирайте совместимые образы.

Пошаговая установка: от инициализации до рабочего сайта

Шаг 1. Инициализация структуры и прав

Во многих шаблонах окружения предусмотрены скрипты для подготовки каталогов и прав доступа. Если в вашем форке/шаблоне есть init.sh — запустите его:

chmod +x init.sh
./init.sh db
./init.sh owner "$USER"
./init.sh perm

Цель — создать каталоги данных, выставить корректные UID/GID и права, чтобы контейнеры могли читать и писать.

Шаг 2. Сборка образов

docker compose build

Первый билд может занять заметное время — докачиваются базовые образы, ставятся расширения PHP, собираются конфигурации веб‑сервера.

Шаг 3. Подъём сервиса

docker compose up -d

Проверьте статусы:

docker compose ps

Производительность локального Docker‑окружения

На macOS и Windows проседание I/O на расшаренных томах — частая причина «тормозов». Полезные практики:

  • Минимизируйте количество файлов, которые активно читаются/пишутся внутри расшаренного каталога. Исключите node_modules/, кеши, логи в нерасшаренные тома.
  • Используйте кеши компиляции PHP и опкеш: opcache с разумными настройками для дев‑режима.
  • Включите Redis/Memcached и храните сессии/кеш вне файловой системы.
  • Периодически чистите устаревшие образы/тэги: docker system prune (осторожно: удалит неиспользуемые ресурсы).
  • Для Xdebug используйте адрес host.docker.internal (или его эквивалент на Linux) и профилируйте точечно.

Кому подойдёт Docker‑подход и когда лучше выбрать «классику»

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

Сравнение: классическое локальное окружение vs Docker

Параметр Классика (OpenServer/VM) Docker (bitrix‑docker/server)
Время старта Часы настройки Минуты + корректный .env
Соответствие продакшену Зависит от рук Высокая консистентность
Обновления Ручные, риски несовместимости Смена образов, версионирование
Переносимость Средняя Высокая (compose + volumes)
Кеш/очереди/cron Добавляются вручную Включаются конфигами

Итоги и практические советы

  • Держите .env аккуратным и версионируйте его шаблон, но не сами секреты.
  • Следите за UID/GID и правами — это половина успеха «чтобы всё писалось».
  • Старайтесь повторять продакшен‑технологии: Redis для сессий, очереди, cron — даже локально.
  • Включайте наблюдаемость: логи веб‑сервера, PHP, БД и, при необходимости, стек логирования (Loki/Grafana/Promtail) из шаблона.
  • Не забывайте про бэкапы и экспорт дампов БД, даже на локалке.
  • При публикации в команду — документируйте нестандартные решения и договоритесь о едином docker compose.

Готовый чек‑лист запуска

  1. Установить Docker/Compose. Проверить версии.
  2. Клонировать шаблон окружения и создать .env.
  3. Инициализировать каталоги и права (если предусмотрено).
  4. docker compose buildup -d.
  5. Скачать bitrixsetup.php в контейнер PHP и пройти установку.
  6. Включить кеш/сессии в Redis/Memcached, проверить cron и почтовую заглушку.
  7. Настроить домены/SSL (при необходимости), Xdebug, профилинг.

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

Ссылка на проект: gitlab.com/bitrix-docker/server