14. Probando nuestra app de laravel
Esta sección detalla los comandos para iniciar los contenedores del entorno de desarrollo (PHP, Nginx, MySQL), verificar su estado, confirmar la conexión a la base de datos y ejecutar las migraciones de Laravel.
Paso 1: Iniciar los Contenedores
Desde el directorio ~/laravel, levanta todos los servicios definidos en el archivo docker-compose.yml.
Ejecutar Docker Compose: El comando
upcon el argumento-dconstruirá las imágenes faltantes y levantará los tres contenedores en segundo plano.Bashdocker-compose up -d** (Referencia a Imagen 14.1 Probando nuestra app de laravel.png)
Verificar el Estado de los Contenedores: Asegúrate de que los tres servicios (
app,nginx,db) estén corriendo (Up):Bashdocker psVerificación: El servicio
nginxdebe mostrar que está exponiendo el puerto 8000 del host al puerto 80 del contenedor. ** (Referencia a Imagen 14.2 Probando nuestra app de laravel.png)
Paso 2: Probar la Aplicación en el Navegador
Utiliza la dirección IP de tu máquina virtual y el puerto expuesto (8000) para acceder a la aplicación Laravel desde tu navegador local.
Abre tu navegador web e ingresa la siguiente URL, reemplazando la IP con la de tu máquina virtual:
http://192.168.1.208:8000Resultado esperado: Deberías ver la pantalla de bienvenida predeterminada de Laravel. Esto confirma que el contenedor de Nginx está sirviendo el código de PHP-FPM correctamente.
Paso 3: Verificar la Conexión a la Base de Datos
Ahora vamos a comprobar que el servicio MySQL haya creado correctamente la base de datos y que las credenciales funcionen.
Acceder al Contenedor de la Base de Datos: Utiliza
docker execpara ingresar al shell interactivo del contenedor de la base de datos (laravel_db_1):Bashdocker exec -it laravel_db_1 /bin/bashIngresar al Cliente MySQL (Usuario Root): Una vez dentro del contenedor, usa el cliente
mysqlcon las credenciales deroot(o el usuario que configuraste) y el password que definiste en el archivo.env:Bash# En el contenedor: mysql -u root -p # Ingresa el password (ej. 'secret_password')Confirmar la Base de Datos Creada: Verifica que la base de datos especificada en
.env(ej.laravel_db) haya sido creada automáticamente por MySQL:SQLmysql> show databases;Verificación: La lista de bases de datos debe incluir
laravel_db. ** (Referencia a Imagen 14.3 Probando nuestra app de laravel.png)
Salir del Cliente MySQL y del Contenedor:
SQLmysql> exit; # En el shell del contenedor: exit
Paso 4: Ejecutar Migraciones de Laravel
Finalmente, prueba la conexión de la aplicación con la base de datos ejecutando las migraciones por defecto de Laravel.
Ejecutar el Comando Artisan desde el Host: Utiliza
docker execpara ejecutar el comandophp artisan migratedentro del contenedor de la aplicación (laravel_app_1) sin necesidad de entrar al shell:Bashdocker exec laravel_app_1 php artisan migrateResultado: El comando debe ejecutarse exitosamente, creando las tablas por defecto de Laravel (users, password_resets, etc.) en la base de datos
laravel_db.
** (Referencia a Imagen 14.4 Probando nuestra app de laravel.png)
Verificar Tablas (Opcional): Si vuelves a acceder al contenedor de la base de datos y utilizas el comando
show tables;en la base de datoslaravel_db, deberías ver las tablas creadas (users,migrations, etc.).
Conclusión: ¡Tu entorno Docker completo está funcionando! La aplicación Laravel se ejecuta a través de Nginx y se conecta perfectamente con la base de datos MySQL persistente.
El siguiente paso es mejorar la experiencia de desarrollo resolviendo la dirección IP (192.168.1.208:8000) como un dominio local más amigable (ej. laravel.local).
Comentarios
Publicar un comentario