Configurar Laravel Sail en cualquier proyecto Laravel

¿Qué es Laravel Sail? 

Laravel Sail es una interfaz de línea de comandos liviana para interactuar con el entorno de Docker el cual es ahora el ambiente predeterminado para desarrollar en Laravel. Sail proporciona un excelente punto de partida para crear una aplicación Laravel con PHP, MySQL y Redis y lo mejor de todo, es que, no se necesita tener experiencia previa en Docker.

En esencia, Sail es el archivo docker-compose.yml y el script de navegación que se almacena en la raíz de su proyecto. El script de navegación proporciona una CLI con métodos convenientes para interactuar con los contenedores de Docker definidos por el archivo docker-compose.yml.

Laravel Sail es compatible con macOS, Linux y Windows (a través de WSL2).

Podemos emplear Laravel Sail para en cualquier proyecto en Laravel; para esto vamos a seguir la documentación oficial en la cual tenemos los pasos.

Laravel Sail es una interfaz de línea de comandos liviana para interactuar con el entorno de desarrollo Docker predeterminado de Laravel. Sail proporciona un excelente punto de partida para crear una aplicación Laravel usando PHP, MySQL y Redis sin requerir experiencia previa en Docker.

Cualquier proyecto en Laravel que sea reciente puede usar Sail

Lo primero que necesitamos, es tener el proyecto en Laravel, en mi caso, para ponerte en contexto tengo proyecto en Windows, que los trabajo con Laragon (nada de Sail) y en una Mac con Laravel Sail; son los mismos proyectos pero ejecutándose en ambientes diferentes.

Instalar Docker

Aunque no vamos a interactuar mucho con Docker, esta viene siendo una dependencia fundamental para poder trabajar con Sail; lo descargas desde la web oficial y lo instalas.

Instalación de Sail en aplicaciones existentes

Para instalarlo, lo típico, instalamos Sail como un paquete normal en Laravel. Si está interesado en usar Sail con una aplicación Laravel existente, simplemente puede instalar Sail usando el administrador de paquetes Composer. Por supuesto, estos pasos asumen que su entorno de desarrollo local existente le permite instalar las dependencias de Composer:

composer require laravel/sail --dev

Es una dependencia de desarrollo, por eso el --dev

Instalar Sail en el proyecto

De momento, tenemos la dependencia en nuestro proyecto, pero tenemos un comando de artisan para que realice las modificaciones necesarias en nuestro proyecto:

php artisan sail:install

Iniciar Sail

Ya tenemos TODO listo, así que lo siguiente que hacemos es iniciar Sail con el comando de:

./vendor/bin/sail up   

Puedes revisar tu .env y veras que ya Sail te crea un usuario por defecto en la base de datos que hayas seleccionado:

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=test
DB_USERNAME=sail
DB_PASSWORD=password

En tu Docker puedes ver que el proyecto está corriendo:

Docker ejecutandose
Docker ejecutandose

Extra: Ejecutar en detached mode

Si quieres ejecutar tu proyecto en detached mode o lo que es lo mismo, que no se quede el proceso de la terminal ejecutando, si no que se ejecute en segundo plano, le pasas la opción de -d

./vendor/bin/sail up -d

Extra:

Si ves un error como el siguiente al intentar inciar Sail:

ERROR: 
        Can't find a suitable configuration file in this directory or any
        parent. Are you in the right directory?
        Supported filenames: docker-compose.yml, docker-compose.yaml, compose.yml, compose.yaml

Es que NO lo instalaste en tu proyecto:

php artisan sail:install

Y seguir los pasos señalados anteriormente.

Comandos básicos en Sail

En cuanto a la ejecución de comandos puedes usar tanto comandos de php, como de artisan y por supuesto, los que nos provee Sail gracias al paquete que instalamos anteriormente mediante docker-compose.

 

Es importante notar que, los programas que formen parte de Docker como MySQL o Redis o cualquier otra base de datos, debes de usar los comandos de sail en lugar de artisan básico; por ejemplo en vez de php artisan migrate, ejecuta sail artisan migrate.

Comandos básicos de docker-compose:

  • docker-compose ps | sail ps : ver los contenedores en ejecución.
  • docker-compose down | sail down : Ver los contenedores y eliminarlos.
  • docker-compose up | sail up: Correr los contenedores.
  • docker-compose up -d | sail up -d: Correr los contenedores en modo background.

Si quieres obtener más información de Laravel, como usarlo en otros ambientes, recueda que cuentas con el curso de Laravel desde cero.

- Andrés Cruz

In english
Andrés Cruz

Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter

Andrés Cruz En Udemy

Acepto recibir anuncios de interes sobre este Blog.