Laravel Sail opzetten zonder composer met Docker

In dit artikel leg ik uit hoe je Larvel Sail kan opzetten zonder composer.

Omdat Laravel Sail gebruikt maakt van Docker moet je wel Docker(desktop) geïnstalleerd hebben.

Met 1 commando een nieuwe Laravel project installeren

Op mijn machines heb ik geen lokale composer geïnstalleerd dus kan ik Laravel niet via deze manier installeren maar wel via een Docker container.
Ga via de commandline naar een folder waar je het Laravel wilt installeren.
Voer daar het volgende commando uit:

docker run -it --rm -v $(pwd):/work -w /work -u 1000:1000 composer:latest create-project laravel/laravel=10.* --ignore-platform-reqs --no-scripts .

Composer packages

Na een nieuwe installatie moet je nog de composer packages installeren, aangezien we nog geen lokale composer en nog geen Docker container hebben voor composer in dit project, kan je ze wel installeren via het volgende commando:

docker run --rm \
    -u "$(id -u):$(id -g)" \
    -v $(pwd):/opt \
    -w /opt \
    laravelsail/php81-composer:latest \
    composer install --ignore-platform-reqs 

Andere PHP versie

php81 staat voor PHP 8.1 dus wil je bijvoorbeeld PHP 8.2 maak dan van php81 -> php82.
In de folder vendor/laravel/sail/runtimes kan je zien welke PHP versies beschikbaar zijn.

Laravel Sail beschikbare PHP versies

.env bestand aanmaken

Om laravel Sail te installeren heb je een .env bestand nodig, maak een kopie van .env.example:

cp .env.example .env

Laravel Sail installeren

Laravel Sail kan je installeren via php artisan sail:install alleen kunnen we nog geen artisan commando’s uitvoeren omdat we dit project nog niet kunnen opstarten door de ontbrekende docker-compose.yml file (wat php artisan sail:install doet).
We kunnen dit weer doen met een docker commando:

docker run --rm \
    -u "$(id -u):$(id -g)" \
    -v $(pwd):/opt \
    -w /opt \
    laravelsail/php81-composer:latest \
    php artisan sail:install

Laravel Sail project opstarten

Als het goed is kan je nu je Laravel Sail project opstarten via het volgende commando:

./vendor/bin/sail up -d

Tip, heb je nog geen alias voor Laravel Sail maak deze dan aan: https://laravel.com/docs/9.x/sail#configuring-a-shell-alias

Laravel Sail gebruiken in een bestaand project

Heb je een bestaand Laravel project waar Sail nog niet in staat, download dan eerst de Sail Composer package:

docker run --rm \
    -u "$(id -u):$(id -g)" \
    -v $(pwd):/opt \
    -w /opt \
    laravelsail/php81-composer:latest \
    composer require laravel/sail --dev --ignore-platform-reqs