# Docker-окружение для Bitrix (env-docker) Этот проект предназначен для быстрого развертывания локального окружения для разработки на Битрикс с использованием Docker. В основе лежит репозиторий https://github.com/bitrix-tools/env-docker ## Директории - [mysql](data/mysql) — файлы баз данных MySQL. Эта папка привязана к контейнеру через bind mount, поэтому данные сохраняются даже после удаления контейнеров. - [www](data/www) — файлы проектов (скрипты Битрикс). Это основной рабочий каталог для разработки. ## Навигация * [Инициализация проекта](#инициализация-проекта) * [Настройка среды разработки](#настройка-среды-разработки) * [Настройка доступа к сайту](#настройка-доступа-к-сайту) * [Настройка Xdebug](#настройка-xdebug) * [Docker](#docker) * [Управление контейнерами (Docker Compose)](#управление-контейнерами) ## Инициализация проекта 1. Создайте директорию для вашего проекта и перейдите в неё. 2. Скачайте и распакуйте архив с репозиторием ```bash https://g.it4gaz.ru/internal-automation/b24-docker ``` 3. Запустите docker 4. В [www](data/www) Необходимо добавить папки: - `вся публичная часть` - берем из репозитория с публичкой - `/bitrix` - из копии б24 - `/upload` - из копии б24 Взять их можно из полной копии проекта (склеить и распаковать полный архив) ```bash # Склеить архив и сразу распаковать (для не сжатых архивов): cat *$(ls -v *tar.*) | tar xf - # Склеить архив и распаковать (для сжатых архивов): cat *$(ls -v *tar.gz*) | tar xzf - ``` Далее перенести необходимые директории ## Настройка среды разработки Настройки вносятся **до первого запуска контейнеров** 1. Скопируйте файлы ```bash cp .env.example .env cp .env_sql.example .env_sql cp .env_push.example .env_push cp confs/php84/etc/php/conf.d/timezone.ini.example confs/php84/etc/php/conf.d/timezone.ini ``` 2. Заполните их значениями для вашей среды разработки: **Пароль к базам данных MySQL** Пароль для суперпользователя `root` задается в файле `.env_sql`: ```dotenv MYSQL_ROOT_PASSWORD="..." ``` **Секретный ключ для Push-сервера** Ключ используется для подписи соединений между клиентом и Push-сервером. Он задается в файле `.env_push`, можно использовать уже установленное значение ```dotenv PUSH_SECURITY_KEY=... ``` **Часовой пояс (timezone)** > Часовой пояс для контейнеров задается в двух местах 1. Файл `.env`. (основная настройка для большинства сервисов). Значение задано как: ```dotenv TZ=Europe/Moscow ``` 2. Файл `confs/php84/etc/php/conf.d/timezone.ini` (настройка для PHP): ```ini date.timezone = Europe/Moscow ``` После выполнения этих шагов можно переходить к запуску контейнеров. ## Настройка доступа к сайту Для macOS. Сайт использует порты **8560 (HTTP)** и **8561 (HTTPS)**. Эти настройки указаны в файле `docker-compose.yml`. Если порты заняты, можно указать другие в `docker-compose.yml`. ### Предварительная настройка (общая для обоих способов) Как открывать сайт: 1) через `127.0.0.1:8560` 2) `b24.local:8560` 1. Добавьте запись в файл `/etc/hosts`. Это свяжет доменное имя с локальным компьютером. ```bash sudo nano /etc/hosts ``` Добавьте строку: ```text 127.0.0.1 b24.local ``` 2. **(Опционально)** Создайте тестовый файл. Для проверки работы создайте в директории [data/www](data/www) файл `index.php` с содержимым: ```php Полезные команды Docker * **Запустить все контейнеры и оставить их работать в фоне:** ```bash docker compose up -d ``` * **Отобразить список контейнеров и их статус:** ```bash docker compose ps ``` * **Показать логи сразу всех контейнеров:** ```bash docker compose logs ``` * **Показать лог определенного сервиса-контейнера:** ```bash docker compose logs redis ``` * **Перезапустить определенный контейнер:** ```bash docker compose restart nginx ``` * **Перезапустить все контейнеры:** ```bash docker compose restart ``` * **Остановить все контейнеры:** ```bash docker compose stop ``` * **Остановить все контейнеры, удалить их:** ```bash docker compose down ``` * **Остановить все контейнеры, удалить их и удалить все тома этих контейнеров:** ```bash docker compose down -v ``` * **Зайти в sh-консоль определенного контейнера, например nginx:** ```bash docker compose exec nginx sh ```