14. Probando nuestra app de laravel
Probar vamos a borrar aquí todo de la consola con Ctrl + L y vamos a decirle docker compose up -d y vamos a ver qué tenemos.
Primero que todo, como ya la imagen de PHP (ese servicio) ya está creada, pues no es necesario volverla a crear. Vemos que los tres contenedores ya están corriendo. Así que si damos docker ps, vemos que ya tenemos los tres servicios corriendo y notamos que nginx está exponiendo el puerto 80 en el contenedor hacia el puerto 8000 en el servidor.
Así que lo que podríamos hacer es abrir el navegador y, sabiendo que la dirección IP de nuestro servidor es la 192.168.1.208 (en mi caso, o la que ustedes tengan en su red), voy a ingresar 192.168.1.208:8000. Deberíamos ver el proyecto de Laravel corriendo perfectamente. Ya tenemos PHP 7.4, Nginx y Laravel 8.29 funcionando en Docker.
Ahora, nos queda verificar si la base de datos también está corriendo con la configuración que especificamos. Así que vamos a ejecutar una consola dentro de nuestra base de datos. Usaremos el comando docker exec -it (ya lo habíamos visto) y, si no recordamos el nombre del contenedor, simplemente hacemos docker ps y vemos que el de la base de datos se llama laravel-db-1. Así que ejecutamos:
docker exec -it laravel-db-1 bashDentro del contenedor de la base de datos, ejecutamos:
mysql -u laravel -pIngresamos la contraseña: secret. Estamos dentro de MySQL. Si ejecutamos show databases;, vemos que tenemos la base de datos laravel_db. Así que confirmamos que tomó la configuración del archivo .env y creó la base de datos laravel_db, el usuario laravel y la contraseña secret.
Para probar que la conexión entre la aplicación de Laravel y la base de datos funciona, salimos del contenedor de la base de datos y ejecutamos las migraciones por defecto de Laravel. Si no sabes qué son las migraciones, no te preocupes, simplemente sigue los comandos:
docker exec laravel-app php artisan migrateVemos que se migraron las tablas: users, password_resets y jobs. Esas son las tablas que se migraron a nuestra base de datos.
Si volvemos al contenedor de la base de datos:
docker exec -it laravel-db-1 bashY entramos nuevamente a MySQL:
mysql -u root -pIngresamos la contraseña: secret. Luego, usamos la base de datos:
use laravel_db;Y mostramos las tablas:
show tables;Deberían aparecer todas las tablas que acabamos de migrar. Vemos que tenemos esas cuatro tablas que migramos, lo que confirma que la base de datos está conectada perfectamente con nuestra aplicación.
Si no sabes qué es una migración, no te preocupes, lo veremos más adelante cuando creemos nuestras propias migraciones. Por ahora, solo creamos las migraciones que vienen por defecto en Laravel.
Todo este proceso no tendremos que repetirlo cada vez que creemos una aplicación de Laravel. Podemos crear un repositorio en GitHub con toda esta configuración y, cuando queramos un nuevo proyecto de Laravel, simplemente clonamos el repositorio y lo montamos nuevamente. Eso sí, debemos cambiar detalles como la base de datos, ya que no queremos correr la misma aplicación en la misma base de datos. Solo tendríamos que modificar el archivo .env para ajustar la base de datos de la nueva aplicación.
Con lo que tenemos aquí, te recomiendo crear tu repositorio en GitHub para no tener que repetir todo este proceso. Ya tenemos lo más importante: una aplicación de Laravel corriendo en Docker, completamente funcional, con una base de datos MySQL y un servidor Nginx.
En el siguiente video, vamos a resolver esta IP como un dominio local en nuestro ordenador. Eso lo veremos en el siguiente video.
Espero que te sea útil. ¡Si necesitas ajustes, házmelo saber!
Comentarios
Publicar un comentario