Рассмотрим основные команды для запуска уже существующего проекта на Laravel в Docker на локальной машине для разработки.
Предполагается, что у вас есть доступ к репозиторию git c исходным кодом проекта и вы его уже склонировали себе на компьютер. Первые команды запускаются в терминале (консоли) вашей основной ОС из папки скаченного проекта. Мы предпочитаем использвать терминал PhpStorm, в котором ведем разработку, т.к. этот терминал уже находится в нужной нам папке - корневой папке проекта.
Также данная инструкция рассчитана на то, что проект уже содержит готовые конфигурационные файлы для Docker.
По ссылке приведен пример, о каких файлах Докер идет речь.
Запуск Docker
Для начала нам надо запустить сборку всех необходимых контейнеров Докер нашего приложения, чтобы потом пойти развертывать проект внутри сервиса web, в котором будет запущен веб-сервер.
Для запуска сборки образов существует команда docker-compose build
, однако если сразу выполнить команду docker-compose up
- она не только запустит окружение для нашего приложения, но также выполнит сборку образов, если их еще нет. Т.е. можно убить двух зайцев сразу выполнением команды с up.
Более подробное описание необходимых команд для работы с Докер.
Настройка Laravel
Далее нам надо собрать зависимости Laravel и настроить его окружение.
Для этого переходим в терминал веб-сервера, выполнив команду: docker-compose exec web bash
Теперь внутри этого терминала выполняем команду php composer.phar install
- она скачает все зависимости для Laravel и выполнит скрипты из секции "post-install-cmd" файла "composer.json".
Далее нам нужно прописать настройки к БД в файле .env. Здесь важный момент, что DB_HOST=db. Где db - это имя сервиса с базой данных из файла docker-compose.yml. Имя базы, логин и пароль для ее пользователя также берутся из docker-compose.yml.
Воспроизведение структуры БД
Чтобы воспроизвести необходимую структуру таблиц в БД и заполнить их тестовыми данными, запускаем миграции и сиддинг с помощью артизана (тоже через консоль веб-сервера):
php artisan migrate --seed
Проверяем, что все работает
Осталось найти адрес сайта, по которому можно проверить работоспособность. Для этого есть два способа.
Первый: посмотреть порт для localhost из файла docker-compose.yml. Он описан в секции сервиса web в настройке ports. К примеру, 8095:80 - где порт слева от двоеточия - и есть порт, по которому доступен сайт в host OS. Т.е. с таким значением портов сайт будет доступен по адресу: http://localhost:8095.
Второй способ: перейти най сайт через Docker Descktop, нажав на кнопку со скриншота ниже: