Publicidad

Configurar Laravel Sail para utilizar un MySql externo existente


Por Alex el 13/05/2024, Comentar el artículo

Comparte este artículo:      




Laravel sail es un entorno de desarrollo de Laravel con Docker que instala por defecto instala un servidor de base de datos MySql o postgreSQL pero instala uno por cada instalación de Laravel sail pero es muy sencillo poder reutilizar el servidor de base de datos para todos los proyectos de Laravel ...


... en este ejemplo utilizaremos MySql y veremos como utilizar el mismo MySql para todos los proyectos de Laravel

Primero creamos un proyecto de Laravel

composer create-project laravel/laravel sail-mysql

Y una vez creado instalamos Laravel Sail pero sin instalar MySql

php artisan sail:install

Hay que deschequearlo

No instalar MySql en Laravel sail

Ya tenemos instalado Laravel sail y ahora vamos a configurar MySql

Lo primero buscamos el servidor de MySql que tenemos instalado. Si no tenéis ninguno aquí hay un artículo donde lo explico Un contenedor docker MySql para todos los proyectos web

Ahora miramos la IP del contenedor de MySql, con

docker ps

buscamos el id del contenedor y inspect

docker inspect 53e792b7709e | grep IPA

Buscando la IP del contenedor de MySql

Ahora también tenemos que buscar la red de MySql, red a la que se conectara nuestro proyecto de Laravel. Para buscar la red ejecutamos

docker network ls

Buscando el nombre de la red de MySql

Ya tenemos la IP del servidor de MySql 172.18.0.2 y el nombre de la red mysql_net_mysql, el nombre de la red se forma con el nombre del directorio donde tengais el proyecto de MySql y el nombre que le hayáis dado a la red en el docker-compose.yml.

Con estos datos vamos a modificar el fichero .env del proyecto de Laravel sail y el docker-compose.yml

En el fichero .env ponemos los datos de acceso a la base de datos

DB_CONNECTION=mysql
DB_HOST=172.18.0.2
DB_PORT=3306
DB_DATABASE=pruebas
DB_USERNAME=root
DB_PASSWORD=root

Y en el docker-compose.yml, el apartado de network añadimos que la red es externa y le ponemos el nombre de la red que queremos asignar.

Configuración de docker compose

Hecho esto solo queda probarlo y para eso entramos dentro del contenedor de sail ejecutando el shell

sail shell

Recordar arrancarlo si lo teníais parado sail up -d

dentro ejecutamos tinker para tener acceso la consola de laravel

php artisan tinker

y una vez en la consola probamos la conexión

DB::connection()->getPDO();

Y si funciona bien la conexión mostrará los datos de conexión

Configuración de docker compose

Esta prueba tambien se puede hacer desde fuera del contenedor para comprobar que tambien funciona bien la conexión al MySql y desde Workbench se puede acceder a administrarlo.

Dejo dos enlaces para el que quiere modificar Laravel sail y tener un Dockerfile personalizado y poder, por ejemplo, instalar Apache2 o Nginx: Laravel sail configurar multidominio con Apache
Y el artículo para crear solo el contenedor del servidro MySql: Un contenedor docker MySql para todos los proyectos web

Y esto es todo, feliz programming
Saludos
Alex
/ :-)


Si te ha gustado el artículo compartelo en:      




Añadir un comentarios:

Nombre:
Email: (no se publica el email)




SIGUENOS EN

ARCHIVO

Publicidad

.