Конфигурация
DL использует конфигурационные файлы docker-compose, поэтому вы можете переопределить любые переменные и даже образы.
Используемые образы:
- Redis (версия alpine)
- MySQL
- MariaDB
- PostgreSQL
- Memcached
- Nginx (версия alpine)
- php-fpm и apache2 (модифицированные оригинальные образы)
Настройка .env файла
С помощью переменных в .env файле вы можете гибко управлять настройками окружения.
Основные
| Переменная | Обязательная | Значение по умолчанию | Примечание |
|---|---|---|---|
| NETWORK_NAME | Нет | Генерируется из HOST_NAME | Имя docker сети. Генерируется из HOST_NAME без спец символов |
| DOCUMENT_ROOT | Нет | /var/www/html | Корневая директория сайта, в которой находится файл index.php. 1 |
| HOST_NAME | Нет | Генерируется по имени текущей директории | Имя сайта или домен. Используется для построения локального URL. 2 |
Деплой файлов и базы данных
| Переменная | Обязательная | Значение по умолчанию | Примечание |
|---|---|---|---|
| CATALOG_SRV | Нет 3 | Корневая директория сайта на сервере | |
| USER_SRV | Нет 3 | Имя пользователя SSH для подключения к серверу | |
| PORT_SRV | Нет 3 | Порт SSH для подключения к серверу | |
| SERVER | Нет 3 | IP адрес (или домен) для подключения к серверу | |
| SSH_KEY | Нет 3 | id_rsa | Указывается имя ssh-ключа, расположенного в директории ~/.ssh/ |
| ASK_KEY_PASSPHRASE | Нет | false | Запросить пароль приватного ssh-ключа. Доступные значения: true, false |
| USE_SSH_PASS | Нет | false | Игнорировать ssh-ключ и использовать пароль для подключения. Доступные значения: true, false |
| EXCLUDED_TABLES | Нет | Исключаемые таблицы MySQL при скачивании дампа с сервера | |
| EXCLUDED_FILES | Нет | Исключаемые файлы при скачивании архива файлов с сервера |
Подключение к базе данных
Если скрипт не смог автоматически определить доступы к базе данных на сервере, пропишите настройки в env-файл вручную
| Переменная | Обязательная | Значение по умолчанию | Примечание |
|---|---|---|---|
| MYSQL_HOST_SRV | Нет | localhost | Хост |
| MYSQL_PORT_SRV | Нет | 3306 | Порт |
| MYSQL_DATABASE_SRV | Да | Название базы | |
| MYSQL_LOGIN_SRV | Да | Имя пользователя | |
| MYSQL_PASSWORD_SRV | Да | Пароль пользователя |
Настройки PHP
| Переменная | Обязательная | Значение по умолчанию | Примечание |
|---|---|---|---|
| PHP_VERSION | Нет | Версия PHP Доступные значения: 7.3-apache, 7.4-apache, 8.0-apache, 8.1-apache, 8.2-apache, 7.3-fpm, 7.4-fpm, 8.0-fpm, 8.1-fpm, 8.2-fpm | |
| PHP_MEMORY_LIMIT | Нет | 256M | Лимит памяти PHP |
| PHP_POST_MAX_SIZE | Нет | 100M | Максимальный размер POST-запроса |
| PHP_UPLOAD_MAX_FILESIZE | Нет | 100M | Максимальный размер файла, разрешенный для загрузки |
| PHP_MAX_FILE_UPLOADS | Нет | 50 | Максимальное количество загружаемых файлов |
| PHP_MAX_EXECUTION_TIME | Нет | 60 | Максимальное время выполнения скрипта |
| PHP_MODULES | Нет | Дополнительные php расширения. Например, PHP_MODULES="redis memcached" | |
| XDEBUG | Нет | off 4 | Для включения модуля XDebug, используйте параметр debug |
| XDEBUG_IDE_KEY | Нет | PHPSTORM | Ключ, который должен быть передан при инициализации сессии XDebug |
| XDEBUG_PORT | Нет | 9003 | Порт XDebug |
| PHP_INI_SOURCE | Нет | /dev/null | Относительная ссылка на файл php.ini для полного переопределения конфигурации (например: PHP_INI_SOURCE: .docker/php/php.ini) |
Настройки базы данных
Если указано значение, будет поднят контейнер с базой данных.
Имя базы данных: db
Имя пользователя: db
Пароль пользователя: db
| Переменная | Обязательная | Значение по умолчанию | Примечание |
|---|---|---|---|
| MYSQL_VERSION | Нет | Версия MySQL. Доступные значения: 5.7, 8.0 | |
| MARIADB_VERSION | Нет | Версия MariaDB. Доступные значения: Supported tags | |
| POSTGRES_VERSION | Нет | Версия PostgreSQL. Доступные значения: Supported tags |
Дополнительные контейнеры
| Переменная | Обязательная | Значение по умолчанию | Примечание |
|---|---|---|---|
| REDIS | Нет | false | Если указано значение true, будет поднят контейнер с Redis |
| REDIS_PASSWORD | Нет | pass | Пароль Redis |
| MEMCACHED | Нет | false | Если указано значение true, будет поднят контейнер с Memcached |
Другие настройки
| Переменная | Обязательная | Значение по умолчанию | Примечание |
|---|---|---|---|
| LOCALTIME | Нет | Europe/Moscow | Часовой пояс, устанавливаемый в контейнеры PHP и MySQL |
| NGINX_CONF | Нет | ~/.config/dl/config-files/default.conf.template | Шаблон конфига nginx. Требуется при использовании php-fpm версии (nginx + php-fpm) |
| LOCAL_IP | Нет | Внешний локальный IP Например, 192.168.0.5 | Если IP компьютера был неправильно определен, его нужно указать вручную в .env файле |
| APPEND_COMPOSE_FILE | Нет | Добавить docker-compose.yaml файл, который должен быть запущен с проектом. (Если файлов несколько, их нужно разделить двоеточием) |
Пример конфигурации для CMS Битрикс
## Remote Server (PROD) ##
CATALOG_SRV=/var/www/site.com/public_html
USER_SRV=user
PORT_SRV=22
SERVER=127.0.0.1
## Local container config ##
HOST_NAME=site.com
DOCUMENT_ROOT=/var/www/html
## Avalible versions: 7.3-apache 7.4-apache 8.0-apache 8.1-apache 8.2-apache 7.3-fpm 7.4-fpm 8.0-fpm 8.1-fpm 8.2-fpm ##
PHP_VERSION=8.2-apache
## Avalible versions: 5.7 8.0 ##
MYSQL_VERSION=8.0
## Deploy settings ##
EXCLUDED_TABLES=b_event_log,b_search_content_stem,b_search_content,b_search_content_text,b_search_content_title,b_search_phrase,b_search_suggest,b_perf_error
EXCLUDED_FILES=.git,upload,bitrix/backup,bitrix/cache,bitrix/managed_cache,bitrix/stack_cache,bitrix/tmp,.env
- Например, если задать
site.com, локальный адрес будет таким:site.com.localhost(илиsite.com.127.0.0.1.nip.io)↩ - Например, для Laravel значение будет
/var/www/html/public↩ - Обязательная переменная при использовании команды
deploy↩ - Все параметры XDebug https://xdebug.org/docs/all_settings#mode↩