Docker существенно упрощает локальную разработку на Битрикс: изолированное окружение, одинаковая среда у всей команды и быстрый старт на новой машине. Разберём минимальный рабочий стек.
Структура проекта
project/
├── docker-compose.yml
├── docker/
│ ├── nginx/default.conf
│ └── php/Dockerfile
└── www/ (файлы сайта)
docker-compose.yml
version: '3.8'
services:
nginx:
image: nginx:alpine
ports: ["80:80"]
volumes:
- ./www:/var/www/html
- ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
php:
build: ./docker/php
volumes:
- ./www:/var/www/html
mysql:
image: mysql:8.0
environment:
MYSQL_DATABASE: bitrix
MYSQL_USER: bitrix
MYSQL_PASSWORD: bitrix
MYSQL_ROOT_PASSWORD: root
volumes:
- mysql_data:/var/lib/mysql
redis:
image: redis:7-alpine
volumes:
mysql_data:
Dockerfile для PHP
FROM php:8.1-fpm
RUN apt-get update && apt-get install -y libzip-dev
RUN docker-php-ext-install pdo_mysql zip opcache
RUN pecl install redis && docker-php-ext-enable redis
Nginx конфиг для Битрикс
server {
listen 80;
root /var/www/html;
index index.php;
location / {
try_files $uri $uri/ /bitrix/urlrewrite.php$is_args$args;
}
location ~ .php$ {
fastcgi_pass php:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Запуск
docker-compose up -d
docker-compose logs -f php
Сайт доступен на http://localhost. База данных на порту 3306 — подключайтесь из любого MySQL-клиента.
