Без рубрики

Docker для разработки на Битрикс: nginx, PHP, MySQL и Redis за 10 минут

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-клиента.