Primeros pasos con Laravel Sail
Laravel Sail es una interfaz de comandos que nos permite trabajar de manera sencilla con Docker. Su utilización es bastante sencilla, ya que no requiere experiencia previa con Docker.
Lo que ofrece es una ambiente con PHP, MySQL y Redis.
Además de esto, es multi-plataforma, lo que quiere decir que podemos utilizarlo tanto Linux, MacOS y Windows.
Esto es una gran utilidad para lograr levantar un ambiente para nuestros desarrollos, de manera muy rápida.
Crear proyecto
Para crear un proyecto Laravel con Sail, debemos ejecutar:
curl -s https://laravel.build/<nombre-proyecto> | bash
En donde el nombre del proyecto, es lo que nosotros definamos, por ejemplo:
curl -s https://laravel.build/laravel-sail-example | bash
Levantar y detener contenedores
El comando anterior genera un directorio con el nombre del proyecto indicado, por lo que ingresamos a él
cd laravel-sail-example
Para levantar la instancia lo hacemos simplemente con el comando “up”
./vendor/bin/sail up
En caso de querer levantarlo en background, debemos agregar la opción “-d”, por ejemplo
./vendor/bin/sail up -d
Una vez levantado, sólo queda http://localhost, y ya veremos nuestro proyecto corriendo.
Para detener todo, simplemente ejecutamos
./vendor/bin/sail down
Ejecución de comandos
Para ejecutar los comandos, como artisan, sólo tenemos que agregar Sail antes del comando, por ejemplo
./vendor/bin/sail composer dump-autoload
./vendor/bin/sail npm run dev
./vendor/bin/sail tinker
Conexión a base de datos
La conexión a la base de datos se hace cómo nos conectaríamos a cualquier DB. Para obtener los datos de conexión, debemos revisar el archivo .env, en donde vemos algo como lo siguiente
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=laravel_passport_example
DB_USERNAME=root
DB_PASSWORD=
Es importante considerar que para la base de datos se genera un volumen, por lo que nuestra data es persistente.
Exponer sitio
Si vemos la necesidad de exponer nuestro sitio, Sail nos permite generar un túnel para lograr
./vendor/bin/sail share
Extras
Si queremos evitar estar escribiendo siempre la ruta de Sail, podemos generar un alias, vamos a nuestro archivo de configuración como .profile, .bash_profile, .zshrc u otro, y agregamos lo siguiente
alias sail='bash vendor/bin/sail'
Luego, al mismo archivo le aplicamos source, para tomar los cambios (ejemplo: source .zshrc). Después de esto, en lugar de ejecutar ./vendor/bin/sail, sólamente ejecutamos sail.