Рассмотрим основные команды для artisan, docker и composer для тех случаев, когда проект на Laravel настраивается для запуска в Docker.
Напомню, что Docker - это виртуальная машина со своей ОС, в которой:
- запускается веб-сервер, в нашем случае Apache, настроенный на работу с PHP,
- сервер баз данных, в нашем случае mariadb
- phpMyAdmin - визуальный редактор баз данных через веб-интерфейс
Composer - менеджер библиотек PHP, с помощью которого скачиваются библиотеки для фреймворка Laravel.
A artisan - скрип-утилита, запускающая встроенные в Laravel команды.
Конфигурация Docker
По ссылкам приведены конфигурации для Docker, чтобы воспроизвести рабочую среду для проекта на Laravel. Предполагается, что данные два файла лежат в корне проекта.
- docker-compose.yml - настройка контейнеров для Apache, mariadb, phpMyadmin (внутри файла приведены комментарии, что означает та или иная настройка)
- Dockerfile - настройка PHP и его пакетов внутри веб-сервера
Команды для работы с Docker
При первом запуске проекта или при обновлении версии PHP и его настроек в файле Dockerfile запускаем:
docker-compose build
- эта команда собирает контейнеры докера, скачивая необходимые пакеты для развертывания заданной среды из сети. Ее запускают при развертывании проекта или когда меняют конфигурацию внутри какого-нибудь контейнера (к примеру, версию PHP в веб-сервере, утилиты, библиотеки)
Для запуска виртуальной среды сайта используется команда:
docker-compose up
- после ее выполнения становятся доступны сайт и phpMyAdmin
Для подключения к терминалу гостевой ОС внутри докера в папку с сайтом используется следующая команда:
docker-compose exec web bash
- внутри этого терминала мы запускаем команды для composer и artisan
Команды artisan
Предполагается, что вы запускаете эти команды, находясь внутри контейнера, выполнив команду: docker-compose exec web bash
.
Если проект уже развернут и надо обновить его, то не лишним будет запуск команды:
php artisan migrate --seed
- она выполнит недостающие миграции (изменит структуру бд под последнюю) и дозаполнит тестовыми данными базу
Команды composer
Предполагается, что вы запускаете эти команды, находясь внутри контейнера, выполнив команду: docker-compose exec web bash
.
Также команды ниже рассчитаны на то, что используется локальный композер, лежащий в корне проекта. Скачать его можно по инструкции с офиицального сайта (выполнив 4 команды в терминале).
При развертывании проекта на локальном компьютере запускается команда:
php composer.phar install
- она заполняет папку vendor нужными (прописанными в composer.lock) библиотеками PHP. Также эта команда запускается, если в проект была добавлена новая библиотека или изменены уже имеющиеся.
Если после выполнения git pull проект падает с ошибкой, что не может найти какого-то класса, то скорее всего другим разработчиком был добавлен новый класс, который надо добавить в автозагрузку, для этого надо выполнить команду
php composer.phar dump-autoload
- она обновит список классов для автозагрузки.