Найти тему
Nuances of programming

Как использовать Laravel Sail с бэкендом Docker Desktop на WSL 2

Источник: Nuances of Programming

Каждому разработчику рано или поздно приходится иметь дело с Docker и контейнерами. Посмотрим, как происходит установка Docker Desktop на Windows 10 , как она интегрируется с подсистемой Windows для Linux (WSL) 2 и как использовать новый инструмент командной строки Laravel Sail, чтобы быстро наладить его работу с Laravel.

Необходимые условия

  1. Windows 10 версии 1903 или новее.
  2. Подсистема Windows для Linux (WSL) 2.

1. Устанавливаем Docker Desktop

Первым делом убедитесь, что у вас есть все необходимое для продолжения установки. Последовательность действий по подключению WSL 2 описана в этой статье .

Загрузите инструкции по установке Docker Desktop и следуйте им. В соответствующем окошке поставьте галочку напротив Install required Windows components for WSL 2 («Установить необходимые компоненты Windows для WSL 2»).

Снимок экрана автора
Снимок экрана автора

По завершении установки Docker Desktop у вас должен появиться доступ к docker из WSL.

Снимок экрана автора
Снимок экрана автора

Если по какой-то причине эта команда не выполняется для вашего дистрибутива, то выполните следующее.

  1. Откройте Docker Desktop.
  2. Перейдите в Settings («Настройки») > Resources («Ресурсы») > WSL Integration («WSL Интеграция»).
  3. Подключите интеграцию с дистрибутивом.
  4. Нажмите на Apply & Restart («Применить и перезагрузить»).
Снимок экрана автора
Снимок экрана автора

Теперь проверим, что все работает, запустив контейнер Docker getting-started . В терминале выполните следующую команду:

docker run -d -p 80 :80 docker/getting-started

Снимок экрана автора
Снимок экрана автора

Теперь вам должно быть доступно руководство для начала работы на http://localhost/ . Если вы никогда раньше не использовали Docker, очень рекомендую прочитать: это отличное руководство.

Снимок экрана автора
Снимок экрана автора

Прежде чем продолжить, обязательно остановите или удалите запущенный контейнер getting-started , иначе он будет мешать работе Laravel Sail.

2. Как использовать Laravel Sail

Согласно документации по L aravel : Laravel Sail  —  это легковесный интерфейс командной строки для взаимодействия со стандартной средой разработки Docker в Laravel. Он дает отличную базу для создания приложения на Laravel с использованием PHP, MySQL и Redis, не требуя предварительного опыта работы с Docker.

Laravel Sail устанавливается автоматически при создании нового приложения на Laravel 8. Для уже существующего приложения придется пройти два-три этапа:

1. Затребуйте его с помощью composer :

composer require laravel/sail --dev

2. Запустите в Artisan (интерфейсе командной строки на Laravel) команду sail:install , которая опубликует файл docker-compose.yml в корневом каталоге приложения:

php artisan sail:install

3. Выполните команду sail up , которая запустит контейнер:

./vendor/bin/sail up

Вот и все. Если теперь перейти на http://127.0.0.1 , отобразится стандартная приветственная страница Laravel.

Снимок экрана автора
Снимок экрана автора

Согласно документации по L aravel : При использовании Laravel Sail приложение выполняется в контейнере Docker и изолируется от локального компьютера. Тем не менее Laravel Sail предоставляет удобный способ запуска различных команд для приложения, таких как произвольные команды PHP, команды интерфейса командной строки Artisan, команды Composer и команды Node/NPM.

В контейнере Laravel Sail есть все, что требуется Laravel, и устанавливать что-либо еще на локальный компьютер без особой необходимости не нужно. Так что призываю вас сразу же взяться за разработку приложения.

Для удобства сначала создайте для Sail alias (псевдоним), чтобы с ним было проще работать:

alias sail="bash ./vendor/bin/sail"

Здесь у нас несколько Sail-команд:

С некоторыми из них вы уже познакомились. Узнайте больше об этих командах и Laravel Sail в целом из документации по Laravel Sail .

Заключение

Использование контейнеров при создании приложений дает уверенность в том, что все разработчики в команде работают с одними и теми же настройками и установками. Поэтому проблемных ситуаций, связанных с запуском отличных друг от друга версий PHP, MySQL, NPM и т. д., не возникнет. Почему бы в таком случае не сделать конфигурацию для разработки приложений, подобную той, которая используется в продакшене?

Читайте также:

Читайте нас в Telegram , VK и Яндекс.Дзен

Перевод статьи Paul A. Byström : How to use Laravel Sail with the Docker Desktop WSL 2 backend

С подпиской рекламы не будет

Подключите Дзен Про за 159 ₽ в месяц