es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Error de DNS al usar docker buildx dentro de gitlab-runner local.

Estoy obteniendo el siguiente error al intentar construir una imagen multiarquitectura.

error: no se pudo resolver: no se pudo realizar la solicitud: Head “https://registry.gitlab.mydomain.tld/v2/repo/project/blobs/sha256:24892ef5fd862876fda584afbdabfe7b1a1c8273fdcd581d6fa93232d5f8f79b”: marcar TCP: buscar registry.gitlab.mydomain.tld en 8.8.8.8:53: no existe tal host

Mi configuración es la siguiente: tengo una instalación personalizada de GitLab que es accesible en gitlab.mydomain.tld y registry.gitlab.mydomain.tld. Las entradas de DNS solo se pueden resolver a través de mi servidor DNS local que se ejecuta en el host. El host también ejecuta el gitlab-runner dentro de un contenedor Docker de la siguiente manera:

gitlab-runner:
imagen: gitlab/gitlab-runner:alpine
nombre_del_contenedor: gitlab-runner
reiniciar: a menos que se detenga
entorno:
TZ: Europe/Berlin
volúmenes:
– /var/run/docker.sock:/var/run/docker.sock
– ./gitlab-runner/config:/etc/gitlab-runner

El DNS dentro del gitlab-runner funciona correctamente. Pero cuando se invoca el comando “docker buildx build”, buildx no puede resolver la URL.

Agregar “–add-host “registry.gitlab.mydomain.tld:0.0.0.0” tampoco soluciona el problema.

Cualquier ayuda es muy apreciada.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que el error está siendo causado por buildx no siendo capaz de resolver la URL de registry.gitlab.mydomain.tld al intentar construir una imagen multiarquitectura. Esto puede deberse al hecho de que las entradas DNS para el dominio sólo pueden ser resueltas por su servidor DNS local que se ejecuta en el host.

    Una posible solución sería asegurarse de que las entradas DNS para gitlab.mydomain.tld y registry.gitlab.mydomain.tld puedan ser resueltas por el demonio de Docker que se está ejecutando en el host. Esto se puede hacer modificando el archivo /etc/docker/daemon.json para incluir lo siguiente:

    {
      "dns": ["TU_IP_LOCAL_DNS"]
    }
    

    Reemplace TU_IP_LOCAL_DNS con la dirección IP de su servidor DNS local.

    Otra posible solución sería usar la bandera --dns al ejecutar el comando docker buildx build para especificar la dirección IP de su servidor DNS local:

    docker buildx build --dns TU_IP_LOCAL_DNS ...
    

    Reemplace TU_IP_LOCAL_DNS con la dirección IP de su servidor DNS local.

    Si ninguna de estas soluciones funciona, podría valer la pena verificar si hay reglas de firewall o restricciones de red que podrían estar impidiendo que buildx resuelva la URL.

Comments are closed.