Короче говоря, Laradock - это набор докеризованного программного обеспечения, созданного сообществом. Это краткое руководство даст вам краткий обзор того, как начать работу с Laradock.

Предпосылки
- Практические знания по git, laravel, docker и docker-compose
- Установлен docker engine + docker compose
Если вы новичок в Docker, не стесняйтесь проверить мой другой учебник:
Ларадок против усадьбы Ларавел
Laradock - это Docker-аналог Laravel Homestead. Хотя оба инструмента могут обеспечить надежную среду разработки, Laradock предлагает следующие преимущества:
Легкий и масштабируемый
- В отличие от Homestad, Laradock разбивает все программное обеспечение на изолируемые докер-контейнеры. Вместо того, чтобы объединять все в одну виртуальную машину, вы устанавливаете / запускаете только то, что необходимо.
Общее ядро с хост-машиной
- Запустите среду разработки за секунды, а не за минуты! Совместное использование ядра значительно снизило потребление ресурсов и предоставило вам высокопроизводительную среду.
Удобство производства
- Да все верно. Laradock можно использовать как в разработке, так и в производстве.
Просто работает!
- Да, как только вы создадите образ докера, вы можете быть уверены, что контейнер докера будет работать где угодно, независимо от типа вашего компьютера.
Ключевые идеи
Каждая из папок Laradock - это докеризованная программа, добавленная сообществом. Вам решать, какое программное обеспечение вы хотите использовать для запуска своего приложения. Я рассмотрю основные контейнеры, необходимые для запуска приложения Laravel.
Контейнер рабочей области
Здесь вы запускаете большинство ваших команд CLI, например команды bash, команды php artisan, установку композитора, yarn / npm и т. Д. Вы можете использовать этот контейнер как место для взаимодействия с вашим приложением.
Контейнер PHP-FPM
Здесь запускаются все ваши скрипты PHP. Убедитесь, что вы устанавливаете все свое программное обеспечение / расширения PHP здесь, а не в контейнере рабочей области.
Контейнер Nginx / Apache
Наш веб-сервер. Он изолирован от нашего PHP-приложения и используется только для обработки веб-запросов. Вы можете найти файл конфигурации в их папке соответственно.
Контейнер MySQL
Опять же, он изолирован от других контейнеров. По умолчанию данные хранятся в папке ~/.laradock/data на главном компьютере. Вы можете изменить это местоположение в .env файле.
Установка
- Установите новую копию Laravel и добавьте Laradock в качестве подмодуля.
Официальный гитхаб Laradock: https://github.com/LaraDock/laradock - Вы должны увидеть папку laradock в корне вашего проекта. Это большая папка, поэтому, пожалуйста, сохраняйте спокойствие и не расстраивайтесь!

3. Файл .env.
Откройте файл .env, содержащийся в папке laradock. Этот файл содержит большую часть конфигурации, необходимой для контейнеров, например Версия PHP, путь к базе данных и т. Д. Не забудьте настроить переменные среды в соответствии с вашим вариантом использования. Ключевые переменные, за которыми нужно следить:
APP_CODE_PATH_CONTAINERDATA_PATH_HOST(убедитесь, что путь существует на хост-машине)COMPOSE_PROJECT_NAME- и версии программного обеспечения для ваших контейнеров
4. Настройте веб-сервер.
Я использую Nginx, но можете смело использовать Apache, если хотите.
- Перейдите на сайты laradock ›nginx›
Laradock запишет эту папку в образ докера. Поэтому каждый раз, когда вы вносите здесь изменения, вам нужно будет перестраивать образ. - Скопируйте laravel.conf.example и переименуйте его в
your-app.conf - Измените имя сервера на домен вашего приложения. (Не забудьте добавить домен в файл хоста, если вы еще этого не сделали)
- Файл conf должен выглядеть примерно так:
server {
listen 80;
listen [::]:80;
# For https
listen 443 ssl;
listen [::]:443 ssl ;
ssl_certificate /etc/nginx/ssl/default.crt;
ssl_certificate_key /etc/nginx/ssl/default.key;
server_name my-app.dev.local;
# app root path should align with what you defined in the
# APP_CODE_PATH_CONTAINER env variable.
root /var/www/my-app/current/public;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_pass php-upstream;
fastcgi_index index.php;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#fixes timeouts
fastcgi_read_timeout 600;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
location /.well-known/acme-challenge/ {
root /var/www/letsencrypt/;
log_not_found off;
}
error_log /var/log/nginx/laravel_error.log;
access_log /var/log/nginx/laravel_access.log;
}
Давай запустим приложение
Выполните следующую команду, чтобы построить наши образы:
docker-compose build workspace php-fpm nginx mysql
Чтобы запустить контейнеры: docker-compose up -d nginx mysql
Примечание: флаг -d запускает контейнеры как демон, то есть в фоновом режиме.
Перейдите к my-app.dev.local (измените это на свой домен), и вы должны увидеть экран приветствия Laravel! Вот и все, и добро пожаловать в сообщество Ларадока :)
Что дальше ?
Мы не рассказали, как установить XDebug и другие инструменты разработки. Посмотрите мой другой урок по настройке ларадока, как классные ребята.