Короче говоря, 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 файле.

Установка

  1. Установите новую копию Laravel и добавьте Laradock в качестве подмодуля.
    Официальный гитхаб Laradock: https://github.com/LaraDock/laradock
  2. Вы должны увидеть папку laradock в корне вашего проекта. Это большая папка, поэтому, пожалуйста, сохраняйте спокойствие и не расстраивайтесь!

3. Файл .env.

Откройте файл .env, содержащийся в папке laradock. Этот файл содержит большую часть конфигурации, необходимой для контейнеров, например Версия PHP, путь к базе данных и т. Д. Не забудьте настроить переменные среды в соответствии с вашим вариантом использования. Ключевые переменные, за которыми нужно следить:

  • APP_CODE_PATH_CONTAINER
  • DATA_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 и другие инструменты разработки. Посмотрите мой другой урок по настройке ларадока, как классные ребята.