Proyecto Laravel 9 y Docker en W10
Image by saralcassidy from Pixabay

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

  1.  Contar con el sistema operativo Windows 10 ya que este tutorial se basa en este SO.
  2. 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:

Proyecto Laravel 9 y Docker en W10

Luego selecciona el instalador de Docker Desktop para Windows:

Escoge la versión de tu sistema operativo

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í»:

Inicia el instalador de Docker

Se iniciará la descarga de las dependencias:

Proyecto Laravel 9 y Docker en W10

En la ventana «Configuration» deja marcada ambas casillas:

Proyecto Laravel 9 y Docker en W10

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 terminar la instalación de Docker cierra la ventana y reinicia

Al reiniciar te pedirá que aceptes los términos por lo que marca la casilla y luego da clic en el botón «Accept»:

Acepta los términos de Docker

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:

Proyecto Laravel 9 y Docker en W10

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:

Descarga el paquete de actualización del kernel Linux

Una vez que termine de bajar el instalador abrelo y sigue los pasos de la instalación:

Inicia el instalador

Continúa con la actualización del kernel de Linux

Proyecto Laravel 9 y Docker en W10

En el buscador de W10 escribe PowerShell y da clic sobre él:

Abre una terminal de PowerShell

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

 

Te muestra todos los distros disponibles

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:

Agrega un usuario y contraseña

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:

WSL ha quedado instalado

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:

Accede a la terminal wsl

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:

Proyecto Laravel 9 y Docker en W10

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:

Ingresa tus credenciales

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:

Proyecto Laravel 9 y Docker en W10

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:

Verifica si está corriendo los servicios de Docker

Y si vas al navegador y pones localhost verás que tu proyecto Laravel está corriendo desde el servidor de desarrollo:

Proyecto Laravel 9 y Docker en W10

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:

Proyecto Laravel 9 y Docker en W10

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"

Proyecto Laravel 9 y Docker en W10

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:

Proyecto Laravel 9 y Docker en W10

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:

Proyecto Laravel 9 y Docker en W10

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:

Proyecto Laravel 9 y Docker en W10

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

Proyecto Laravel 9 y Docker en W10

Puedes ver que se crearon los archivos en el árbol de archivos de tu proyecto en VSC:

Verifica el árbol de archivos de tu proyecto

Para instalar una biblioteca o paquete lo puedes hacer siguiendo la nomenclatura:

sail composer require livewire/livewire

Iniciará la instalación de la biblioteca:

Proyecto Laravel 9 y Docker en W10

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.

Documentación Microsoft

Documentación Laravel

Doctos Laravel Sail

Te puede interesar: CRUD con Laravel 9 y React

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.