14-Probar nuestra aplicación Laravel con Docker
Probar nuestra aplicación Laravel con Docker
🎯 Objetivo
Verificar que nuestra aplicación Laravel funciona correctamente en Docker, incluyendo PHP, Nginx y la conexión a la base de datos MySQL.
📋 Prerrequisitos
Tener Docker y Docker Compose instalados
Tener un proyecto Laravel configurado con Docker
Archivos
docker-compose.ymly.envconfigurados
🚀 Paso 1: Iniciar los contenedores
Primero, limpiamos la consola y verificamos el estado de nuestros contenedores:
# Limpiar consola (Ctrl+L)
docker-compose up -dVerificamos que los tres servicios estén corriendo:
docker psDeberíamos ver algo similar:
CONTAINER ID NOMBRE ESTADO PUERTOS
abc123 laravel-app Up ...
def456 laravel-db-1 Up 3306/tcp
ghi789 laravel-nginx Up 0.0.0.0:8000->80/tcp✅ Nota: Como la imagen de PHP ya está creada, no es necesario reconstruirla.
🌐 Paso 2: Verificar la aplicación en el navegador
Observamos en docker ps que Nginx está mapeando el puerto 80 del contenedor al puerto 8000 del servidor.
Abre tu navegador web
Accede a la aplicación usando la IP de tu servidor:
http://192.168.1.208:8000(Ajusta la IP según tu configuración)
Deberías ver la página principal de Laravel
✅ Resultado: Tenemos PHP 7.4, Nginx y Laravel 8 corriendo correctamente en Docker.
🗄️ Paso 3: Verificar la base de datos
Acceder al contenedor de MySQL:
docker exec -it laravel-db-1 bashDentro del contenedor:
mysql -u laravel -pContraseña: secret
Verificar la base de datos:
SHOW DATABASES;Deberías ver la base de datos laravel_db creada.
✅ Confirmación: La configuración del archivo .env funcionó correctamente.
🔄 Paso 4: Ejecutar migraciones de Laravel
Salimos del contenedor de la base de datos (exit) y ejecutamos las migraciones:
docker exec laravel-app php artisan migrateDeberías ver algo como:
Migrated: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_100000_create_password_resets_table
Migrated: 2019_08_19_000000_create_failed_jobs_table✅ Paso 5: Verificar las tablas migradas
Volvemos a acceder a la base de datos:
docker exec -it laravel-db-1 mysql -u root -pContraseña: secret
USE laravel_db;
SHOW TABLES;Deberías ver las 4 tablas creadas:
userspassword_resetsfailed_jobsmigrations
🎉 ¡Perfecto! Confirmamos que:
La aplicación Laravel está funcionando
Nginx sirve la aplicación correctamente
La base de datos está conectada y operativa
Las migraciones se ejecutaron exitosamente
💡 Consejos y Buenas Prácticas
📁 Crear un repositorio de plantilla
Para no repetir este proceso en cada proyecto nuevo:
Crea un repositorio en GitHub con toda la configuración Docker
Al iniciar un nuevo proyecto Laravel, clona este repositorio
Modifica el archivo
.envpara cambiar:Nombre de la base de datos
Credenciales de la base de datos
Configuraciones específicas del proyecto
🔧 Archivos clave a versionar:
docker-compose.ymlDockerfile(si aplica)Archivos de configuración de Nginx
Scripts de inicialización
🎬 Siguientes pasos recomendados
En el próximo tutorial aprenderemos a:
Configurar un dominio local para nuestra aplicación
Usar
localhosten lugar de la dirección IPConfigurar virtual hosts en nuestro equipo local
📝 Resumen
Hemos verificado exitosamente que nuestra aplicación Laravel funciona completamente en Docker:
✅ Servidor web (Nginx) corriendo en puerto 8000
✅ PHP 7.4 con Laravel 8 funcionando
✅ Base de datos MySQL configurada y conectada
✅ Migraciones ejecutadas correctamente
✅ Comunicación entre todos los servicios establecida
¡Tu entorno de desarrollo con Docker está listo para comenzar a programar!
Comentarios
Publicar un comentario