Docker Compose окружение для 1С-Битрикс (PHP 8.2 + Apache/Nginx + MySQL + Push-Server)

Обновлено: Сентябрь 2026 Стек: 1C-Bitrix 24, PHP 8.2, Nginx, Apache, MariaDB, Node.js Проверено: Production-Ready

Готовый docker-compose.yml для 1С-Битрикс: связка Nginx + Apache/PHP 8.2 с bitrix-расширениями, MariaDB 10.11 и NodeJS Push-Server.

Интерактивный генератор под ваши параметры
Параметры подставляются в код в реальном времени
docker-compose.yml
# docker-compose.yml
version: '3.8'

services:
  web:
    image: nginx:alpine
    container_name: bitrix_nginx
    restart: always
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./app:/var/www/html
      - ./nginx/conf.d:/etc/nginx/conf.d:ro
    depends_on:
      - php
    networks:
      - bitrix_net

  php:
    build:
      context: ./php
      dockerfile: Dockerfile
    container_name: bitrix_php
    restart: always
    volumes:
      - ./app:/var/www/html
    depends_on:
      - db
      - push
    networks:
      - bitrix_net

  push:
    image: node:18-alpine
    container_name: bitrix_push_server
    restart: always
    working_dir: /opt/push-server
    volumes:
      - ./push-server:/opt/push-server
    command: node server.js --config=config.json
    networks:
      - bitrix_net

  db:
    image: mariadb:10.11
    container_name: bitrix_db
    restart: always
    command: --transaction-isolation=READ-COMMITTED --innodb-strict-mode=OFF
    environment:
      MYSQL_DATABASE: bitrix_db
      MYSQL_USER: bitrix_user
      MYSQL_PASSWORD: BitrixPassword2026!
      MYSQL_ROOT_PASSWORD: BitrixPassword2026!_root
    volumes:
      - db_data:/var/lib/mysql
    networks:
      - bitrix_net

networks:
  bitrix_net:
    driver: bridge

volumes:
  db_data:

Разбор ключевых директив конфигурации

Техническое обоснование директив и их прямое влияние на процессор (CPU), оперативную память (RAM) и дисковый ввод-вывод (NVMe I/O).

Директива / Блок Рекомендуемое значение Зачем нужно и системное влияние (CPU / RAM / I-O)
command: --transaction-isolation=READ-COMMITTED Параметры MariaDB Сразу запускает MariaDB с требуемым Битриксом уровнем изоляции транзакций.
restart: unless-stopped unless-stopped Обеспечивает автоматический перезапуск контейнеров при сбое демона Docker или перезагрузке VDS.
logging / max-size: 10m max-size: 10m, max-file: 3 Ограничивает размер логов контейнеров на диске, предотвращая переполнение дискового пространства NVMe (100% Disk Full).
volumes / app_data named volume / local bind Выносит базу данных и загружаемые файлы в постоянные тома, предотвращая потерю данных при обновлении контейнеров.

Рекомендуемые системные требования VDS под этот стек

Расчет минимальной и оптимальной конфигурации виртуального сервера для стабильной работы без сбоев.

Оптимальный сайзинг: 4 vCPU, 8 GB RAM, 100 GB NVMe
Расчетная нагрузка: Интернет-магазин на Битрикс / Корпоративный портал
4 CPU / 8 GB NVMe
⚡

Timeweb Cloud

Рекомендуемые ресурсы
4 vCPU (3.5+ GHz) / 8 GB RAM / 100 GB NVMe
4 vCPU / 8 GB RAM
🔷

Selectel

Рекомендуемые ресурсы
4 vCPU (3.5+ GHz) / 8 GB RAM / 100 GB NVMe
Turbo 8 GB
🟠

Beget

Рекомендуемые ресурсы
4 vCPU (3.5+ GHz) / 8 GB RAM / 100 GB NVMe

Онлайн-утилиты SysKit для проверки этого сервера

Протестируйте корректность применения конфигурации прямо сейчас в один клик.

Частые ошибки при настройке и их решение (FAQ)

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

Какие расширения PHP нужны в Dockerfile для Битрикс?
Обязательно установите `gd`, `intl`, `mysqli`, `zip`, `opcache`, `mbstring`, а в php.ini задайте `mbstring.func_overload = 0`.
Как запустить и остановить стек в фоновом режиме?
Запуск: `docker compose up -d`. Остановка: `docker compose down`. Просмотр логов: `docker compose logs -f`.
Ошибка: Port already allocated (порт 80/443 занят)
Проверьте, не запущен ли локальный Nginx или Apache: `systemctl stop apache2` или `systemctl stop nginx`, либо измените внешний порт в `ports: ["8080:80"]`.

Рекомендуемые смежные конфигурации

Дополнительные рецепты и калькуляторы для полной оптимизации данного серверного стека.