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

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

Почему локальный 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

Читайте также

Интеграции с 1С и API
1072 6 мин.

Как настроить регистрацию и личный кабинет покупателя на 1С-Битрикс?

Пошаговая настройка регистрации на сайте битрикс: Главный модуль, main.register, system.auth.form и sale.personal.section с историей заказов и 152-ФЗ.
Интеграции с 1С и API
938 6 мин.

Как настроить скидки и промокоды на 1С-Битрикс: правила корзины и купоны

Пошаговый гайд по скидкам в CMS-магазине: скидка на товар, правило корзины от суммы, купоны с лимитом, приоритеты без конфликтов и тестовый заказ. Не Bitrix24.
Интеграции с 1С и API
757 15 мин.

Что такое компонент в Битриксе и как он работает

Каждый разработчик, впервые столкнувшийся с Битриксом, проходит через своеобразный обряд посвящения. Вначале кажется, что это просто CMS, где можно поправить HTML в визуальном редакторе или дописать пару строк CSS. Но однажды наступает момент, когда нужно изменить логику вывода новостей, отфильтровать товары по хитрому свойству или добавить на страницу нечто совершенно новое. И тут он впервые слышит это слово — «компонент». Для многих этот момент становится стеной. Система, казавшаяся понятной, вдруг превращается в черный ящик, полный непонятных файлов и странных переменных. Но стоит лишь раз заглянуть под капот, как эта стена рассыпается, превращаясь в набор удивительно логичных и мощных строительных блоков. Понимание компонентов — это тот самый щелчок, после которого разработка на Битрикс из мучения превращается в творчество.

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

Интеграции с 1С и API
714 2 мин.

Установка Composer в 1С-Битрикс

Установка Composer в проекте на 1С-Битрикс требует учета особенностей платформы, чтобы обеспечить корректную работу и интеграцию с системой.