Publicidad

Laravel sail, un entorno de desarrollo con docker y laravel


Por Alex el 22/04/2024, Comentar el artículo

Comparte este artículo:      




Laravel sail sirve para crear entornos de desarrollo con docker. Sail son una serie de scripts que viene de serie con la instalación de laravel y a través de un docker-compose.yml y un script (sail) se puede interactuar desde la línea de comandos con docker.


Laravel Sail es compatible con Linux, macOS y Windows (a través de WSL2 - https://learn.microsoft.com/es-es/windows/wsl/about ).

Aunque al instalar laravel sail crea un entorno de desarrollo con docker, éste no deja de ser un entorno sencillo con algunos contenedores adicionales como pueden ser MySql, redis y cualquier otro que se quiera instalar modificando el fichero docker-compose.yml.

En un proyecto laravel sail lo tenemos todo en uno integrado, una url para el proyecto asociado a su servidor MySql o postgreSQL, y si creamos otro proyecto de laravel tendríamos lo mismo duplicando MySql, o si quisiéramos tener varios dominios en el mismo proyecto porque tenemos web y API no podemos con una instalación estandar.

Lo primero que vamos hacer es crearnos un proyecto Laravel

composer create-project laravel/laravel lara-base

Como he comentado anteriormente Laravel sail viene por defecto cuando se crea un proyecto nuevo de Laravel y lo podemos encontrar en

vendor/laravel/sail

Para instalarlo en el proyecto ejecutamos el siguiente comando

php artisan sail:install

Pedirá que sistema de base de datos utilizar, se pueden elegir varios

Selección de base de datos desde Laravel sail

Cuando el proceso haya finalizado ya podremos utilizar el entorno docker con laravel a través del comando sail.

Ejecutando el comando sail de la siguiente manera podemos ver la ayuda y las opciones que tiene

./vendor/bin/sail

Pero para no tener que escribir siempre todo el comando y poder utilizar solo sail creamos un alias en el sistema

alias sail='sh $([ -f sail ] && echo sail || echo vendor/bin/sail)'

y ahora ya podemos utilizar solo el comando sail. Este comando es aconsejable incluirlo en el fichero .bashrc o .zshrc para que sea permanente.

Para arrancar los contenedores ejecutamos:

sail up

con la opción -d ejecutaremos el comando en background.

Ahora podemos mirar los containers en ejecución con

docker ps

Listado de containers con docker ps

Para ver los contenedores también se puede utilizar el comando

sail ps

Y para ver el web en el navegador utilizamos http://localhost/

Proyecto web en el navegador

Ya podemos ponernos a desarrollar y probarlo de forma sencilla y fácil sin tener que instalar entornos complejos.

La versión de PHP que utiliza es la ultima que sail tenga configurada pero en el fichero docker-composer.yml podemos cambiarla modificando el campo build -> context

Fichero docker-compose donde cambiar ruta dockerfile

Ya hemos visto que para encender los containers se utiliza

sail up

Y deja el entorno en modo debug y se puder ir viendo las peticiones http

sail up -d

Lo arranca y lo deja en background

Para parar los contenedores:

sail stop

Para pararlos y destruirlos

sail down

Cualquier comando que queráis ejecutar con artisan, por ejemplo ver las rutas ahora hay que anteponer el comando sail

php artisan route:list
sail php artisan route:list

Para conectarnos al contenedor de desarrollo utilizaremos el comando

sail shell

y entramos dentro del contenedor de desarrollo con el comando

sail mysql

Entramos en el terminal de MySql para poder realizar cualquier tarea de administración o consultas con la base de datos de datos.

También podemos conectar a MySql con un administrador como MySql Workbench utilizando la conexión localhost y puerto 3306 y los datos de acceso que hay en el fichero .env o utilizar un docker de phpMyAdmin

Os recomiendo que miréis el comando sail donde se muestra la ayuda y los comandos que se pueden utilizar.



Y esto es todo, feliz programming
Saludos
Alex
/

Si te ha gustado el artículo compartelo en:      




Añadir un comentarios:

Nombre:
Email: (no se publica el email)




SIGUENOS EN

ARCHIVO

Publicidad

.