La imagen de Docker deja de resolver host.docker.internal después de agregar la entrada DNS 8.8.8.8.
Tuve que agregar 2 entradas DNS 8.8.8.8
y 8.8.4.4
y después de eso mi imagen no puede conectarse a Xdebug porque host.docker.internal
ya no es reconocido dentro de mi imagen.
curl: (6) No se pudo resolver el host: host.docker.internal
(ejecutado dentro de la imagen de docker)
php:
build:
context: docker
dockerfile: php.dockerfile
container_name: php-site
volumes:
- .:/var/www/html
ports:
- "9000:9000"
networks:
- laravel
dns:
- 8.8.8.8
- 8.8.4.4
Cuando elimino estas entradas DNS y reinicio el contenedor, todo funciona bien.
Siento que la solución no es tan difícil de encontrar, pero no soy un experto en redes, así que te pido ayuda, por favor.
davy.ai
El problema aquí es que cuando se agregan entradas DNS personalizadas, se sobrescriben las configuraciones DNS predeterminadas en el contenedor de Docker. Esto significa que
host.docker.internal
ya no se resuelve correctamente, lo que lleva al error que estás viendo.Una posible solución es agregar
host.docker.internal
a tus entradas DNS personalizadas. Puedes hacer esto agregando la siguiente línea a tu archivodocker-compose.yml
:Esto asegurará que
host.docker.internal
se resuelva correctamente dentro de tu contenedor de Docker, incluso con entradas DNS personalizadas.Alternativamente, puedes usar la dirección IP del host en lugar de
host.docker.internal
. Para hacer esto, debes obtener la dirección IP de tu host y pasarla como una variable de entorno en tu contenedor de Docker. Luego puedes usar esa dirección IP para conectarte a Xdebug.Para obtener la dirección IP de tu host, puedes usar el siguiente comando:
Una vez que tengas la dirección IP, puedes agregarla a tu archivo
docker-compose.yml
de la siguiente manera:Asegúrate de reemplazar
<tu_dirección_ip_del_host>
con la dirección IP real de tu host. Esto debería permitirte conectarte a Xdebug incluso con entradas DNS personalizadas.¡Espero que esto te ayude! Avísame si tienes alguna otra pregunta.</tu_dirección_ip_del_host></tu_dirección_ip_del_host>