Probador de reglas .dockerignore

Pega reglas y rutas para revisar el contexto de compilación esperado. El análisis de texto no lee tu repositorio ni ejecuta Docker.

Se ejecuta localmente en tu navegador
Esta herramienta procesa todos los datos localmente en tu navegador.
Reglas y rutas candidatasLos patrones y rutas se evalúan localmente como texto; VoriTools nunca lee tu repositorio ni contexto Docker.

Cómo probar reglas .dockerignore sobre rutas candidatas

El recuadro izquierdo recibe el contenido de un archivo .dockerignore y el derecho las rutas candidatas, una por línea, tal como aparecen dentro de la raíz del contexto de compilación. Al pulsar Probar contexto de compilación cada ruta recibe un veredicto: excluida o incluida, con la regla que lo decidió y una nota cuando la coincidencia vino de una carpeta superior. La columna derecha muestra además la lista normalizada de reglas, es decir, las líneas que Docker lee de verdad, y un informe de los riesgos habituales del contexto.

.dockerignore indica al cliente de Docker qué archivos quedan fuera del contexto de compilación, el árbol que se envía al daemon y que ADD y COPY pueden ver. Esta página solo lee ese texto: no abre tu repositorio, no recorre una carpeta de contexto real y no ejecuta ninguna compilación. Todo lo que sigue describe las reglas de coincidencia que aplica la página, que siguen la implementación que usa Docker.

  1. Pega el archivo en el recuadro Reglas .dockerignore, un patrón por línea. Una línea cuyo primer carácter sea # es un comentario; ! convierte una línea en una excepción que vuelve a incluir archivos.
  2. Escribe en Rutas candidatas las rutas que quieras comprobar, una por línea, tal como aparecen dentro del contexto: src/index.js, node_modules/react/index.js, .env.
  3. Pulsa Probar contexto de compilación. Cada ruta se etiqueta como excluida o incluida y se nombra la regla que decide; por ejemplo «excluida · coincide: node_modules (carpeta superior)» cuando la coincidencia viene de una carpeta por encima del archivo.
  4. Lee el recuadro .dockerignore normalizado: los comentarios y las líneas vacías desaparecen, ./x, a//b, a/../b y una barra final se limpian, y una barra inicial se elimina; lo que ves es lo que Docker lee.
  5. Revisa la lista de resultados para los riesgos habituales — .git, node_modules, .env y claves privadas, reglas que atrapan todo, reglas que no coincidieron con ninguna candidata — y confirma cualquier patrón raro con la versión de Docker con la que compilas, porque la lista de candidatas es solo una muestra del contexto real.

Cómo lee Docker el archivo, cómo encajan los patrones y qué no puede ver esta página

Cómo se lee el archivo

El lector elimina el BOM UTF-8 de la primera línea, ignora las líneas cuyo primer carácter es # y salta las vacías; un # que solo aparece tras espacios es un patrón, no un comentario. Cada línea restante se recorta, un ! inicial marca una excepción y el resto se limpia como una ruta: ./x pasa a x, a//b a a/b, a/../b a b, foo/ a foo. Después se quita una barra inicial, así que /foo y foo son el mismo patrón. Una línea que solo contiene ! es un error: Docker se detiene con «illegal exclusion pattern».

Los patrones que no sobreviven a esa limpieza se avisan antes de que empiece una compilación: una clase [ sin cerrar, un ] o un - mal colocados dentro de una clase, o un patrón que termina en barra invertida. La página indica el número de línea y el texto exacto en lugar de repetir el archivo en silencio.

Cómo encaja un patrón con una ruta

Cada candidata se compara con los patrones de arriba abajo y decide el último que coincide, así que una excepción posterior puede deshacer una exclusión anterior. El patrón se compara con la ruta completa respecto a la raíz del contexto: *.md cubre los markdown de la raíz y **/*.md cubre cualquier profundidad. Un * o un ? no cruzan la barra /, ** sí cruza directorios (a/**/b también coincide con a/b, y **/foo también con un foo de la raíz), [0-9] y [^a-z] son clases de caracteres y la barra invertida escapa el carácter siguiente.

Un patrón también decide por todo lo que hay dentro de una carpeta con la que coincide: por eso node_modules excluye node_modules/react/index.js, y los resultados lo dicen con la nota de carpeta superior. Como solo cuenta la última regla que coincide, una línea ! a la que se llega sin nada excluido no recupera nada, y el informe enumera esas líneas inútiles.

Qué no puede ver esta página

Los veredictos son de texto. La página nunca recorre tu repositorio, así que un archivo que no esté en la lista de candidatas no se examina, y la lista es una muestra y no el contexto real. Las versiones de Docker difieren ligeramente al transferir y filtrar contextos, por lo que conviene volver a comprobar un patrón poco habitual con el cliente con el que compilas.

.dockerignore solo determina lo que el cliente envía al daemon. No crea capas de imagen por sí mismo, no afecta a los montajes en tiempo de ejecución y no cambia qué archivos copia una instrucción COPY o ADD: un archivo que permanece en el contexto se puede copiar, y uno excluido hace fallar un COPY cuando el Dockerfile lo espera. Revisa también las rutas de copia.

Herramientas recientes: