Etiqueta: docker

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

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

    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. 🚀