Volver a la página principal
viernes 27 septiembre 2024
33

Cómo utilizar Laravel Sail

1. ¿Qué es Laravel Sail?

Laravel Sail es un entorno de desarrollo ligero basado en Docker que se distribuye con Laravel 8 y versiones superiores. Sail utiliza contenedores para crear un entorno de desarrollo consistente en cualquier máquina, sin importar el sistema operativo que uses. Los contenedores se definen utilizando un archivo docker-compose.yml que Laravel genera automáticamente cuando se crea un nuevo proyecto con Sail.

Ventajas de Laravel Sail

  • Entorno uniforme: Independientemente del sistema operativo que uses (Windows, Mac o Linux), el entorno de desarrollo es el mismo.
  • Fácil de configurar: Con un solo comando, puedes tener un entorno completo en funcionamiento.
  • Basado en Docker: Sail utiliza Docker para crear entornos aislados, lo que minimiza conflictos con otras herramientas.
  • Comandos predefinidos: Sail proporciona una interfaz de línea de comandos simplificada para interactuar con Docker.

2. Requisitos previos

Antes de empezar a utilizar Laravel Sail, asegúrate de cumplir con los siguientes requisitos:

  • Docker: Laravel Sail depende de Docker, así que necesitas tener Docker Desktop instalado en tu sistema. Puedes descargarlo desde la página oficial de Docker.
  • Composer: Aunque Laravel Sail automatiza muchas configuraciones, necesitarás Composer para instalar Laravel y sus dependencias. Puedes instalar Composer siguiendo las instrucciones de su página oficial.

3. Instalación de Laravel Sail

Hay dos formas de instalar Laravel con Sail: creando un nuevo proyecto desde cero o añadiendo Sail a un proyecto Laravel existente.

Creando un nuevo proyecto con Laravel Sail

Para crear un nuevo proyecto de Laravel con Sail, simplemente ejecuta el siguiente comando en tu terminal:

curl -s https://laravel.build/mi-proyecto | bash

Este comando descargará e instalará las dependencias necesarias y creará una nueva aplicación Laravel con Sail preconfigurado. Puedes reemplazar mi-proyecto con el nombre que desees para tu proyecto.

Añadiendo Laravel Sail a un proyecto existente

Si ya tienes un proyecto Laravel y quieres usar Sail, puedes agregarlo ejecutando:

composer require laravel/sail --dev

Después de instalar Sail, puedes iniciar el entorno de desarrollo ejecutando:

php artisan sail:install

Este comando te permitirá seleccionar qué servicios deseas habilitar en Sail (por ejemplo, MySQL, Redis, etc.).

4. Iniciando un proyecto con Laravel Sail

Una vez que tengas Laravel Sail instalado, es hora de iniciar el entorno de desarrollo. Para ello, navega a la carpeta de tu proyecto y ejecuta:

./vendor/bin/sail up

Este comando arrancará los contenedores definidos en el archivo docker-compose.yml y pondrá tu aplicación en funcionamiento. Por defecto, Sail utiliza PHP, MySQL y Redis, pero puedes personalizar esto según tus necesidades.

Ejecución en segundo plano

Si quieres ejecutar Sail en segundo plano, añade el parámetro -d:

./vendor/bin/sail up -d

De esta manera, tu entorno seguirá en ejecución aunque cierres la terminal.

5. Comandos básicos de Laravel Sail

Laravel Sail ofrece una serie de comandos que te permiten interactuar con tu entorno de desarrollo sin tener que lidiar directamente con Docker. Algunos de los comandos más comunes son:

  • Arrancar el entorno de desarrollo:
./vendor/bin/sail up
  • Detener el entorno:
./vendor/bin/sail down
  • Ver los contenedores en ejecución:
./vendor/bin/sail ps
  • Acceder a la consola de Laravel:
./vendor/bin/sail artisan tinker
  • Ejecutar pruebas:
./vendor/bin/sail test
  • Acceder a un contenedor específico:

Si deseas ejecutar comandos dentro del contenedor de la aplicación, utiliza shell:

./vendor/bin/sail shell

6. Configuración avanzada de Sail

Laravel Sail viene preconfigurado con servicios básicos como MySQL y Redis, pero es fácil extenderlo para agregar más servicios, como PostgreSQL, Elasticsearch, o incluso servicios personalizados.

Para modificar los servicios habilitados, abre el archivo docker-compose.yml que se encuentra en la raíz del proyecto y añade o modifica los contenedores según sea necesario.

Por ejemplo, para agregar soporte a PostgreSQL, añade el siguiente bloque al archivo docker-compose.yml:

services:
  postgres:
    image: postgres:13
    environment:
      POSTGRES_USER: sail
      POSTGRES_PASSWORD: password
      POSTGRES_DB: laravel
    ports:
      - "5432:5432"

Luego, actualiza la variable de entorno DB_CONNECTION en el archivo .env a pgsql para conectar Laravel con la base de datos PostgreSQL.

7. Personalización del archivo docker-compose.yml

El archivo docker-compose.yml es la configuración principal de Sail. Aquí puedes personalizar los servicios, puertos y variables de entorno que se utilizan en el entorno de desarrollo. Por ejemplo:

version: '3.8'
services:
  laravel.test:
    build:
      context: ./docker/8.0
    ports:
      - '80:80'
    volumes:
      - .:/var/www/html

En este ejemplo, estamos ajustando la versión de PHP que se usa en el contenedor (8.0), así como los puertos mapeados (80:80) y los volúmenes que se montan (./:/var/www/html).

8. Ejecutar pruebas y depurar con Laravel Sail

Sail también facilita la ejecución de pruebas y la depuración del entorno. Algunos comandos útiles para estos fines son:

  • Ejecutar pruebas con PHPUnit:
./vendor/bin/sail test
  • Depurar usando Xdebug:

Laravel Sail incluye soporte para Xdebug. Simplemente añade las siguientes líneas a tu archivo .env:

SAIL_XDEBUG_MODE=develop,debug

Luego, reinicia el entorno con:

./vendor/bin/sail up -d

De esta manera, Xdebug estará habilitado y listo para conectarse con tu IDE.

9. Conclusión

Laravel Sail es una herramienta potente y fácil de usar para crear entornos de desarrollo consistentes y rápidos con Docker. Con Sail, puedes comenzar a desarrollar en Laravel sin tener que lidiar con la instalación de múltiples servicios y dependencias manualmente. Además, su flexibilidad te permite personalizar cada aspecto de tu entorno de desarrollo para adaptarse a las necesidades de tu aplicación.

Con esta guía, deberías tener una comprensión sólida de cómo usar Laravel Sail para crear y gestionar entornos de desarrollo. ¡Ahora es tu turno de comenzar a experimentar y aprovechar al máximo esta poderosa herramienta!

Etiquetas:
laravel php
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer