Laravel Sail под Windows

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

WSL

Начиная с Windows 10 версии 2004 и выше для установки WSL нужно открыть консоль с правами администратора и ввести команду:

wsl --install

Эта команда позволяет включить необходимые компоненты, скачать последнюю версию ядра Linux, установить WSL 2 в качестве компонента по-умолчанию и установить дистрибутив Linux.

Приведённая выше команда работает только если WSL не установлена вообще.

Если Вы выполнили команду wsl --install и видите текст справки WSL, попробуйте выполнить wsl --list --online, чтобы просмотреть список доступных дистрибутивов. Затем выполните wsl --install -d <DistroName> для установки дистрибутива.

Команда wsl --list выводит список доступных дистрибутивов. Проверьте если нужный дистрибутив не установлен по-умолчанию, сделать это будет можно командой wsl --set-default <DistroName>.

Более подробно о других способах установки WSL можно прочитать здесь.

Docker Desktop

Если в системе не установлен Docker Desktop, ставим его.

У него всё просто: "далее - далее - далее - готово".

Если во время установки не включили компоненты WSL 2 - не страшно, это можно сделать впоследствии.

После запуска Docker заходим в его настройки и на вкладке General активируем Use the WSL 2 based engine:

Затем переходим в раздел Resources > WSL Integration и активируем добавленный раннее дистрибутив:

Laravel Sail

Laravel Sail возможно использовать как в новом проекте, так и подключать в существующий. Laravel Sail работает с PHP версии 7.4 и выше.

Мы будем использовать свежий проект используя инсталлятор, который установит Laravel 9 с зависимостью Sail:

laravel new blog

Так как все команды нужно начинать с vendor/bin/sail, укажем алиас для упрощения. Для этого в файл %USERPROFILE%\.bash_profile добавим строку:

alias sail='vendor/bin/sail'

Перезапускаем консоль, переходим в папку с созданным проектом и инициализируем конфигурацию Sail:

php artisan sail:install

Через запятую указываем сервисы, необходимые для приложения. Например, 0,3 установит mysql и redis:

И жмём enter.

Эта команда создаст файл docker-compose.yml в корне проекта и пропишет конфиги redis и mysql в файле .env.

При необходимости одновременного запуска нескольких проектов, в файле .env можно задать ключ APP_PORT с номером порта.

Например, со значением APP_PORT=1234 приложение будет доступно по адресу http://127.0.0.1:1234.

Теперь можно переходить к запуску и здесь у нас есть два варианта:

sail up
sail up -d

Первый вариант, sail up запустит контейнеры в "живом" режиме, то есть при закрытии консоли закроется и соединение, а sail up -d запустит их в фоновом режиме и контейнеры будут работать до тех пор, пока не будет передана команда sail down либо не будет выгружен сам докер.

Просто так в Windows нельзя запустить Sail, так как он использует компоненты Linux. Именно поэтому на этапе установки WSL устанавливался дистрибутив, например, Ubuntu.

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

wsl

Также стоит заметить, что алиас sail мы устанавливали в Windows и он не распространяется на подсистему, поэтому зададим его и подсистеме.

Для этого выполните команду nano ~/.bashrc и добавьте в конец файла строки:

alias sail='[ -f sail ] && bash sail || bash vendor/bin/sail'
alias sart='[ -f sail ] && bash sail artisan || bash vendor/bin/sail artisan'

Для применения изменений выйдем из подсистемы командой exit и заново в неё войдем:

Запускаем контейнеры командой sail up и ждём завершения компиляции:

Переходим на страницу http://127.0.0.1 и видим наше приложение.

В консоли также будет видно логирование запросов. Конечно, если запуск производился командой sail up.

Для вызова различных artisan-команд в контейнере можете пользоваться алиасом sart. Например:

sart queue:work

Всё. Удачи в разработке

Источник: https://habr.com/ru/post/658753/


Интересные статьи

Интересные статьи

Мы продолжаем поддерживать и внедрять инновации в среду выполнения Windows Forms. В этой статье обсудим, что мы сделали в рамках .NET 6.0. В том числе среди улучшений: улучшения и исправления специаль...
На одном из утренних дэйликов, мобильные разработчики подняли вопрос о том, что документация по API не соответствует действительности. По горячим следам быстро нашли, что...
Данный пост ни на что не претендует, а написан мной в целях помочь таким-же недопрограммистам как я. Возможно, если бы я прочитал документацию по этой API полностью, то этой статьи бы и н...
Выпущена новая версия Windows Terminal. Терминал можно загрузить из Microsoft Store или со страницы выпусков на GitHub. Давайте перейдем к просмотру нововведений! Поиск В Терминал добавлена ф...
Ещё не успела отшуметь уязвимость BlueKeep (CVE-2019-0708) для старых версий ОС Windows, нацеленная на реализацию протокола RDP, как снова пора ставить патчи. Теперь в зону поражения попали всё н...