Generador de .dockerignore

Marca lo que contiene tu proyecto y copia un .dockerignore. Deja fuera del contexto de build las dependencias, los resultados de compilación, los logs y los secretos: el build sube menos datos, aprovecha mejor la caché y no copia archivos .env a la imagen.

Separados por espacios o comas, por ejemplo docs/ **/*.tmp

Guárdalo como .dockerignore junto al Dockerfile, en la raíz del contexto de build. Comprueba que no excluye nada que copie el Dockerfile.

Funciona en tu navegador: nada de lo que escribes se envía a ningún sitio.

Cómo se usa

  1. Deja marcados «Archivos de Docker y Git» y «Secretos»: sirven en casi cualquier proyecto.
  2. Marca tu lenguaje y, si hace falta, los editores y los archivos del sistema.
  3. Añade tus propios patrones, por ejemplo una carpeta de datos de prueba.
  4. Guarda el resultado como .dockerignore en la raíz del contexto de build, normalmente junto al Dockerfile.

Cómo funciona

Las listas elegidas se combinan en un orden fijo: Docker y Git, secretos, lenguajes, editores, archivos del sistema y al final tus patrones. Un patrón que ya apareció en un grupo anterior no se repite, y un grupo que queda vacío por ello se omite.

Docker compara cada línea con las rutas relativas a la raíz del contexto. * coincide dentro de una carpeta, ** con cualquier número de carpetas y ! vuelve a incluir archivos excluidos antes.

Ejemplo

La selección por defecto (Docker y Git, secretos, Node.js, archivos del sistema) empieza así:

# Docker and Git
.git
.gitignore
.dockerignore
Dockerfile*
docker-compose*.yml
compose*.yaml
**/*.log

# Secrets
.env
.env.*
!.env.example
**/*.pem
**/*.key

y sigue con **/node_modules, los logs de npm y pnpm, coverage, dist, **/.DS_Store y **/Thumbs.db. Los títulos de grupo son comentarios en inglés y no afectan a Docker.

Consejos

  • Excluir node_modules no es solo cuestión de velocidad: las dependencias instaladas en tu equipo pueden estar compiladas para otro sistema. Instálalas dentro de la imagen.
  • Si tu Dockerfile copia un archivo ya compilado, como target/app.jar o dist/, desmarca ese grupo o añade una excepción con !.
  • Tras cambios grandes, ejecuta docker build --no-cache . para comprobar que la imagen se construye sin los archivos excluidos.

Preguntas frecuentes

¿Para qué sirve .dockerignore?

Al ejecutar docker build, la carpeta indicada (el contexto de build) se envía al constructor. Los archivos que coinciden con .dockerignore quedan fuera del contexto: COPY y ADD no pueden copiarlos y se envían menos datos.

¿Por qué algunos patrones empiezan por **/?

En .dockerignore un patrón se compara desde la raíz del contexto: node_modules excluye solo la carpeta del nivel superior. **/node_modules la encuentra a cualquier profundidad, algo importante en monorepos.

¿Cómo conservo un archivo que excluye un patrón?

Añade una línea que empiece por ! después del patrón, como .env.* seguido de !.env.example. Decide la última línea que coincide, así que la excepción va después de la regla que anula.

¿Puedo excluir el propio Dockerfile?

Sí. El constructor recibe igualmente el Dockerfile y el .dockerignore porque los necesita, pero COPY . . no los meterá en la imagen.

¿Es lo mismo que .gitignore?

La idea es la misma y las reglas no: en .gitignore un patrón sin barra vale a cualquier profundidad, en .dockerignore los patrones parten de la raíz del contexto. Por eso esta lista escribe **/ donde una carpeta puede aparecer en cualquier sitio.

Más en Desarrollo

Todas las herramientas de la categoría: Desarrollo ·Actualizado el 4 de noviembre de 2026

Opciones de privacidad

Google Analytics nos muestra qué herramientas se usan y si funcionan. Puede usar cookies. Tu elección se guarda en este navegador.