Personalizar el Dockerfile de Laravel Sail con sail:publish y añadir Redis con sail:add
Hola, bienvenido. En esta lección vamos a abrir la imagen de Sail y a añadir un servicio a sail-app. Para personalizar el Dockerfile de Laravel Sail hay que publicarlo con sail artisan sail:publish, que copia los archivos de la imagen a una carpeta docker/ del proyecto y cambia el compose.yaml para construir desde ahí. Y para añadir un servicio, sail artisan sail:add redis escribe su bloque en el compose.yaml y ajusta el .env. Vamos a hacer las 2 cosas: leer el Dockerfile con lo que ya sabes, cambiar un valor de su php.ini y añadir Redis.
Publicar los archivos de Sail con sail:publish
¿Por qué publicar? Hasta ahora, el build.context del compose.yaml apunta a vendor/laravel/sail/runtimes/8.5, dentro de vendor/. Ahí no conviene tocar nada, porque es una carpeta que gestiona Composer, y el próximo composer update que actualice Sail sobrescribiría tus cambios sin avisarte. sail:publish copia esos archivos a tu proyecto, donde sí son tuyos:
Fíjate en que copia 2 carpetas de vendor/laravel/sail: los runtimes, que son los archivos de la imagen para cada versión de PHP, y los scripts de las bases de datos. Así queda docker/:
Nosotros solo usamos docker/8.5 y docker/mysql. El resto no molesta, y si algún día cambias de versión de PHP, ya lo tienes a mano.
El comando también ha cambiado 2 rutas del compose.yaml: el build.context, que ahora es ./docker/8.5, y el script que crea la base de datos testing al inicializar MySQL, que se monta desde ./docker/mysql con el bind mount en /docker-entrypoint-initdb.d/ que ya usamos para el esquema de tasks/. Y vamos a hacer un cambio más por nuestra cuenta, que recomienda la documentación de Sail: darle a la imagen un nombre propio. ¿Por qué? Porque todos los proyectos con Sail y PHP 8.5 de tu máquina usan la imagen sail-8.5/app, y si construyes tu versión personalizada con ese nombre, los demás proyectos la usarán también la próxima vez que levanten sus contenedores. La llamamos sail-app/app:
- 02El Dockerfile de Sail leído con lo de la lección 3
- 03Cambiar un valor del php.ini y reconstruir
- 04Añadir Redis con sail:add
¿Ya lo habías pedido o entras desde otro dispositivo? Escribe el mismo email: recuperas tu acceso y tu avance.
Al entrar desde el enlace te apuntamos a los avisos de cursos gratuitos. Te das de baja cuando quieras.
¿Ya tienes cuenta? Entra