Cómo crear un proyecto Laravel con Sail sin instalar PHP ni Composer en tu sistema

Laravel Sail Linux

Si estás en Arch Linux (o cualquier distro liviana) y no querés ensuciar tu entorno con PHP, Composer o Node.js, Laravel Sail te permite trabajar completamente dentro de contenedores Docker. Solo necesitás tener Docker y Docker Compose v2 instalados en tu host.


🐋 1. Instalar y habilitar Docker

sudo pacman -S docker docker-compose
sudo systemctl enable --now docker
sudo usermod -aG docker $USER
# Cerrá sesión y volvé a entrar para aplicar el grupo docker

En Compose v2 se usa docker compose (sin guion). Cualquiera de los dos paquetes (docker-compose o docker-compose-plugin) sirve.


⚙️ 2. Crear un nuevo proyecto Laravel con Sail

Podés generar el proyecto directamente con el script oficial de Laravel, que ya configura Sail:

curl -s https://laravel.build/miapp | bash
cd miapp
./vendor/bin/sail up -d

Esto crea el entorno completo con PHP, Composer, Node, MySQL y Redis dentro de contenedores.

Elegir servicios opcionales

Podés personalizar qué servicios incluye el entorno ejecutando:

curl -s "https://laravel.build/miapp?with=pgsql,redis,mailpit" | bash

Servicios comunes: mysqlpgsqlmariadbredismeilisearchmailpitselenium.


💻 3. Comandos básicos con Sail

Usá ./vendor/bin/sail para todo:

# Artisan
./vendor/bin/sail php artisan migrate

# Composer
./vendor/bin/sail composer require laravel/sanctum

# Node / Vite
./vendor/bin/sail npm install
./vendor/bin/sail npm run dev

Alias opcional para acortar:

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

🔧 4. Agregar Sail a un proyecto Laravel existente

Si ya tenés un proyecto Laravel sin Sail, podés agregarlo sin necesidad de tener PHP instalado localmente.

docker run --rm -u "$(id -u):$(id -g)" -v "$PWD":/app -w /app composer:2 \
  composer require laravel/sail --dev

docker run --rm -v "$PWD":/var/www/html -w /var/www/html \
  laravelsail/php84-composer:latest php vendor/bin/sail install

./vendor/bin/sail up -d

🧩 5. Problemas comunes

  • Permisos en carpetas:sudo chown -R $USER:$USER storage bootstrap/cache
  • Puertos ocupados:
    Editá docker-compose.yml o el archivo .env y cambiá APP_PORTFORWARD_DB_PORT, etc.
  • Variables de entorno:
    Revisá el archivo .env generado y ajustá los valores según tus servicios (DB_*MAIL_*, etc.).

✅ Conclusión

Con Laravel Sail podés desarrollar aplicaciones modernas sin instalar nada fuera de Docker.
En Arch, esto es ideal para mantener tu sistema limpio y tu entorno de desarrollo totalmente reproducible.

Si querés, puedo dejarte el comando exacto para un stack típico (Postgres + Redis + Mailpit) listo para levantar con docker compose. 🚀

Comentarios

Dejá una respuesta