Laradock
Laradock поддерживает множество общих сервисов, все из которых предварительно настроены для создания готовой среды разработки на PHP.
Требования⚓︎
Введение⚓︎
Настройка нескольких вариантов окружения для множества разных проектов может быть довольно утомительной. Для облегчения подобных задач и предлагается использовать Laradock.
Установка⚓︎
К нашим услугам два вида установки — для одного проекта и для нескольких.
Если вам нужна отдельная среда Docker для каждого проекта, следуйте этой инструкции.
PHP-проект уже есть⚓︎
Если вы используете Git, выполните в корне проекта эту команду:
Если Git не используете, нужна другая команда:
Убедитесь, что структура вашего проекта соответствует такой:
На этом всё, переходите к главе Использование.
PHP-проекта пока нет⚓︎
Создайте папку для проекта, откройте в ней консоль и выполните команду:
Структура вашего проекта должна соответствовать следующей:
Скопируйте файл .env.example под именем .env:
Откройте скопированный файл и отредактируйте переменную APP_CODE_PATH_HOST так:
На этом всё, переходите к главе Использование.
Установка для нескольких проектов⚓︎
Выполните следующие действия, если вам нужна единая среда Docker для всех ваших проектов.
Структура вашего проекта должна соответствовать следующей:
Переменная APP_CODE_PATH_HOST в файле .env должна указывать на корневой каталог:
Определитесь с сервером, который будете использовать, и создайте файлы конфигурации, которые будут указывать на другой каталог проекта при посещении разных доменов:
Для Nginx перейдите в nginx/sites, для Apache2 — apache2/sites.
По умолчанию включено несколько примеров файлов, которые вы можете скопировать: app.conf.example, laravel.conf.example и symfony.conf.example.
Переименуйте файлы конфигурации по шаблону *.conf.
Вы можете переименовывать файлы конфигурации, папки проекта и домены по своему усмотрению, только убедитесь, что корень в файлах конфигурации указывает на правильное имя папки проекта.
Добавьте домены в файл hosts:
Настройка⚓︎
В файле .env можно изменить основные переменные, которые вам могут понадобиться. Например:
# Define the prefix of container names. This is useful if you have multiple projects that use laradock to have separate containers per project.
COMPOSE_PROJECT_NAME=laradock
После изменения версии нужно пересобирать образ php-fpm: docker-compose build php-fpm.
### NGINX #################################################
NGINX_HOST_HTTP_PORT=80
NGINX_HOST_HTTPS_PORT=443
NGINX_HOST_LOG_PATH=./logs/nginx/
NGINX_SITES_PATH=./nginx/sites/
NGINX_PHP_UPSTREAM_CONTAINER=php-fpm
NGINX_PHP_UPSTREAM_PORT=9000
NGINX_SSL_PATH=./nginx/ssl/
### APACHE ################################################
APACHE_HOST_HTTP_PORT=80
APACHE_HOST_HTTPS_PORT=443
APACHE_HOST_LOG_PATH=./logs/apache2
APACHE_SITES_PATH=./apache2/sites
APACHE_PHP_UPSTREAM_CONTAINER=php-fpm
APACHE_PHP_UPSTREAM_PORT=9000
APACHE_PHP_UPSTREAM_TIMEOUT=60
APACHE_DOCUMENT_ROOT=/var/www/
APACHE_SSL_PATH=./apache2/ssl/
APACHE_INSTALL_HTTP2=false
APACHE_FOR_MAC_M1=false
### MYSQL #################################################
MYSQL_VERSION=latest
MYSQL_DATABASE=default
MYSQL_USER=default
MYSQL_PASSWORD=secret
MYSQL_PORT=3306
MYSQL_ROOT_PASSWORD=root
MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d
### MARIADB ###############################################
MARIADB_VERSION=latest
MARIADB_DATABASE=default
MARIADB_USER=default
MARIADB_PASSWORD=secret
MARIADB_PORT=3306
MARIADB_ROOT_PASSWORD=root
MARIADB_ENTRYPOINT_INITDB=./mariadb/docker-entrypoint-initdb.d
### POSTGRES ##############################################
POSTGRES_VERSION=alpine
POSTGRES_CLIENT_VERSION=15
POSTGRES_DB=default
POSTGRES_USER=default
POSTGRES_PASSWORD=secret
POSTGRES_PORT=5432
POSTGRES_ENTRYPOINT_INITDB=./postgres/docker-entrypoint-initdb.d
### ADMINER ###############################################
ADM_PORT=8081
ADM_INSTALL_MSSQL=false
ADM_PLUGINS=
ADM_DESIGN=pepa-linha
ADM_DEFAULT_SERVER=mysql
Использование⚓︎
Осталось запустить что-то вроде docker-compose up -d nginx mysql phpmyadmin для установки выбранных компонентов. Не забудьте перед этим перейти в директорию laradock в командной строке. Процесс может быть достаточно долгим, заранее запаситесь чаем и печенюшками. Ну или что вы там больше всего любите.
Примечание
Контейнеры nginx и apache зависят от контейнера php-fpm, поэтому при запуске любого из них нет необходимости добавлять в команду php-fpm, он запустится автоматически. Если же вам всё-таки кровь из носу понадобится это сделать, запускайте в следующей последовательности: docker-compose up -d nginx php-fpm mysql.
Список всех доступных сервисов можно посмотреть в docker-compose.yml. А для их настройки загляниту в папку с соответствующим именем компонента внутри директории laradock.
Для остановки проекта используем docker-compose down.
Вместо заключения⚓︎
Размер всей папки Laradock сразу после установки — чуть больше 20 МБ. После настройки проекта вы одной командой (docker-compose up -d nginx mysql adminer) можете получить полностью сконфигурированные Nginx, MySQL и Adminer (либо любые другие зависимости, на ваш выбор). Для каждого проекта можно настроить свои варианты окружения: сервер базы данных, версию PHP и прочее. Laradock работает с помощью Docker, а значит везде, где работает Docker: в Windows, Linux, Mac OS.
Размер дистрибутива OS Panel, предлагаемый для скачивания на официальном сайте — 946 МБ. Свои варианты окружения для каждого проекта настраиваются только в 6 версии, в 5 такого нет. После каждого изменения модулей приходится перезагружать панельку. Open Server работает только в Windows.
Что вам больше нравится? Правильного ответа нет, у каждого свои вкусы и требования. Попробуйте и сравните.