Laravel Sail no funciona: port is already allocated, Permission denied y SQLSTATE[HY000] [2002]
Hola, bienvenido. Llegamos a la última lección del curso, y es la que vas a querer tener a mano el día que algo falle. Cuando Laravel Sail no funciona, el error casi siempre viene de una de las piezas que hemos montado a mano: un puerto que ya está usando otro programa, un MySQL que todavía no acepta conexiones, un volumen con datos de otra configuración o un usuario que no es el tuyo. En esta lección vamos a ver los mensajes más habituales, cada uno con su causa, el comando que lo confirma y el que lo arregla, y con la lección donde montamos la pieza que lo explica.
Los mensajes que vas a ver salen de provocar cada error sobre sail-app, copiados tal cual. Algunas soluciones tocan el .env o el compose.yaml, y en cada caso verás qué línea cambia.
Qué mirar primero: docker compose ps y docker compose logs
Antes de buscar el mensaje concreto, hay 2 comandos que te dicen por dónde va el problema. El primero es docker compose ps, que con Sail lanzas como sail ps, para ver en qué estado está cada contenedor. Con --format puedes quedarte solo con el servicio y su estado:
Así es como tiene que estar: los 3 servicios en Up, y MySQL y Redis en healthy, gracias a su healthcheck. Si falta un servicio, es que no ha llegado a arrancar, y sail ps -a te enseña también los contenedores parados con su código de salida. Si MySQL sigue en health: starting, todavía se está inicializando.
El segundo comando es docker compose logs, con el servicio que falla, que te enseña lo que ha escrito ese contenedor al arrancar:
Son los comandos de la lección Redes y puertos en Docker Compose, y los comandos del día a día, que Sail pasa tal cual a Docker Compose. Si los lanzas con docker compose directamente, verás antes los 2 avisos de WWWUSER y WWWGROUP de la lección anterior, que aquí no afectan.
- 02Error "port is already allocated" o "address already in use" al hacer sail up
- 03SQLSTATE[HY000] [2002] Connection refused
- 04SQLSTATE[HY000] [1045] Access denied for user 'sail'
- 05Permission denied en storage/logs/laravel.log
- 06Call to undefined function: falta una extensión de PHP
- 07Docker or Podman is not running
- 08Hasta aquí el curso
¿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