En este tutorial aprenderás cómo crear un proyecto en Laravel 9 y Docker en el SO W10 desde cero utilizando la herramienta llamada Sail. Al poner tus proyectos en contenedores de Docker te ayudará cuando estás en producción a evitar conflictos entre versiones de dependencias. Sin más, manos a la obra.
Requisitos previos
- Contar con el sistema operativo Windows 10 ya que este tutorial se basa en este SO.
- Editor de textos Visual Studio Code (VSC).
1. Descargar e instalar Docker
Para instalar Docker en tu W10 ve a su página oficial docker.com y luego a la sección Developers->Getting started:
Luego selecciona el instalador de Docker Desktop para Windows:
Una vez que termina la descarga del fichero .exe ábrelo para iniciar la instalación. Windows te pedirá permisos de administrador para continuar, da clic en «Sí»:
Se iniciará la descarga de las dependencias:
En la ventana «Configuration» deja marcada ambas casillas:
La instalación de Docker demora un poco, al finalizar da clic en el botón «Close and restart» con lo que tu pc se reiniciará:
Al reiniciar te pedirá que aceptes los términos por lo que marca la casilla y luego da clic en el botón «Accept»:
2. Instalar WSL 2
Después de aceptar los términos se abrirá una ventana que te dice que la instalación está incompleta ya que falta algunas instrucciones para terminar de instalar WSL 2 (Windows Subsystem for Linux), da clic en el enlace:
Se abrirá una ventana en el navegador en donde se ven las instrucciones para instalar WSL 2, para actualizar el kernel de Linux da clic en el enlace para que se descargue el ejecutable para actualizar:
Una vez que termine de bajar el instalador abrelo y sigue los pasos de la instalación:
En el buscador de W10 escribe PowerShell y da clic sobre él:
En la terminal de Windows escribe la siguiente instrucción:
wsl --set-default-version 2
Ahora debes de escoger la distribución de Linux que quieres instalar, para ver la lista de distribuciones escribe en la terminal el comando:
wsl --list --online
De la lista anterior debes de escoger una distribución de Linux, en mi caso escogeré Ubuntu y para instalarla se escribe en la terminal:
wsl --install -d Ubuntu
Empezará la descarga e instalación de la distribución que escogiste, dentro del proceso de instalación se abrirá una nueva terminal en cual te pedirá un nombre de usuario y una contraseña, te recomiendo recordar esta información ya que al crear tu proyecto Laravel 9 y Docker en W10 se te pedirá las credenciales:
Una vez que termina la configuración la terminal de comandos estará esperando instrucciones, puedes ver que acepta los comandos de las distribuciones en Ubuntu:
En la ventana que te salió anteriormente da clic en «Restart» para que se reinicie los servicios de Docker.
3. Crear proyecto Laravel 9 y Docker en W10
Para crear tu primer proyecto en Laravel 9 y Docker, abre una terminal de PowerShell y escribe la instrucción:
wsl
Dentro de la terminal de Power Shell se abrirá una consola de Ubuntu:
En la consola de Ubuntu verás los mismos archivos y carpetas que ves en W10, entra en la ruta en donde crearás tu proyecto, en mi caso será en la carpeta de «www» de Laragon, y escribe la siguiente instrucción:
curl -s https://laravel.build/laravel-9-docker-example | bash
Se iniciará la descarga de la imagen de Docker y de las dependencias requeridas para tu proyecto Laravel:
Al terminar de crear tu proyecto te pedirá la contraseña con la que configuraste el usuario de la distribución Linux en el punto anterior, ingresala para acabar la instalación:
Tu proyecto ha sido creado.
4. Inicializar Docker, Sail y los servicios
Para arrancar Docker y todos los servicios de la imagen, desde la terminal accede a la carpeta de tu proyecto:
cd laravel-9-docker-example
Luego escribe la instrucción:
./vendor/bin/sail up
Se mostrará en la terminal que se están inicializando todos los servicios, la primera vez que se corre es demorado ya que hace un sudo update de todas las dependencias del proyecto:
Cuando termine de iniciar los servicios parecerá que sigue cargando, para verificar que ya está corriendo el servicio ve a la ventana de Docker Desktop allí verás si ya se encuentra listo y corriendo tu proyecto:
Y si vas al navegador y pones localhost verás que tu proyecto Laravel está corriendo desde el servidor de desarrollo:
Para detener los servicios de tu proyecto, abre una nueva terminal de PowerShell y ve a la carpeta en donde está tu proyecto y escribe la instrucción:
./vendor/bin/sail down
Los servicios se detendrán:
5. Crear alias para Sail
Para que no tengas que estar escribiendo una y otra vez la instrucción para encender o apagar los servicios de Sail vas a crear un alias, para ello desde la terminal wsl abre el archivo de configuración:
sudo nano ~/.bashrc
Te pedirá que ingreses tu contraseña y abrirá el archivo de configuración, con las flechas de desplazamiento colocate al final del archivo y escribe:
alias sail="./vendor/bin/sail"
Para guardar y salir presiona la combinación de teclas Ctrl + X y luego «y» y Enter, para que el sistema tome en cuenta los cambios realizados escribe en la terminal:
source ~/.bashrc
Para verificar que está funcionando el nuevo alias, desde la terminal wsl colócate dentro de la carpeta de tu proyecto y escribe:
sail up
Verás que los servicios se inicializan:
6. Cómo utilizar Sail en tu proyecto
Sail es un CLI (Command Line Interface) que comunica a Laravel con Docker, esta herramienta te permite usar Docker sin saber de Docker. Abre la carpeta de tu proyecto con Visual Studio Code y abre una terminal de VSC, verás que WSL ya está integrado:
Si quieres ver la versión de Laravel de tu proyecto escribe el comando:
sail artisan --version
Para ver la versión de PHP del contenedor de tu proyecto:
sail php --version
Recuerda que estos comandos los puedes usar dentro de la terminal de VSC o en PowerShell invocando antes wsl. Para ver la versión de Node y NPM en tu contenedor escribe:
sail node -v sail npm -v
La salida sería:
Para crear un modelo con controlador y migración escribirías la instrucción con Sail de esta manera:
sail artisan make:model Products -crm
Puedes ver que se crearon los archivos en el árbol de archivos de tu proyecto en VSC:
Para instalar una biblioteca o paquete lo puedes hacer siguiendo la nomenclatura:
sail composer require livewire/livewire
Iniciará la instalación de la biblioteca:
Como verás, una vez que tienes levantado el servicio con Sail es fácil desarrollar, es solo acostumbrarse a poner el comando «sail» antes de cualquier otro comando.
Conclusión
En este tutorial creaste un proyecto en Laravel 9 y Docker en W10 paso a paso. En futuros tutoriales abordaré un proyecto completo en Laravel y Docker así el cómo hacer deploy de un proyecto en un servidor de producción. Si te sirvió este tutorial te invito a compartirlo en tus redes sociales para alcanzar a más personas y si tienes dudas o comentarios déjalos en la caja de comentarios, estaré al pendiente de ellos. Te mando un saludo.
Te puede interesar: CRUD con Laravel 9 y React