Compartir comentarios
Las respuestas se generan en base a la documentación.

Caché de registro (registry)

Tabla de contenidos

El almacenamiento de caché registry se puede considerar como una extensión de la caché inline. A diferencia de la caché inline, la caché registry es completamente independiente de la imagen, lo que te permite un uso más flexible: la caché respaldada por registry puede hacer todo lo que hace la caché inline, y más:

  • Te permite separar la caché y los artefactos de imagen resultantes para que puedas distribuir tu imagen final sin la caché en su interior.
  • Puede almacenar en caché de manera eficiente compilaciones multi-etapa (multi-stage) en el modo max, en lugar de solo la etapa final.
  • Funciona con otros exportadores para mayor flexibilidad, en lugar de solo con el exportador image.

Este backend de almacenamiento de caché no es compatible con el controlador docker predeterminado. Para usar esta función, crea un nuevo constructor (builder) usando un controlador diferente. Consulta Controladores de compilación para obtener más información.

Sinopsis

A diferencia de la caché inline que es más simple, la caché registry admite varios parámetros de configuración:

$ docker buildx build --push -t <registry>/<image> \
  --cache-to type=registry,ref=<registry>/<cache-image>[,parameters...] \
  --cache-from type=registry,ref=<registry>/<cache-image> .

La siguiente tabla describe los parámetros CSV disponibles que puedes pasar a --cache-to y --cache-from.

NombreOpciónTipoPredeterminadoDescripción
refcache-to,cache-fromStringNombre completo de la imagen de caché a importar.
modecache-tomin,maxminCapas de caché a exportar, consulta modo de caché.
oci-mediatypescache-totrue,falsetrueUsar tipos de medio OCI en los manifiestos exportados, consulta tipos de medio OCI.
image-manifestcache-totrue,falsetrueAl usar tipos de medio OCI, generar un manifiesto de imagen en lugar de un índice de imagen para la imagen de caché, consulta tipos de medio OCI.
compressioncache-togzip,estargz,zstdgzipTipo de compresión, consulta compresión de caché.
compression-levelcache-to0..22Nivel de compresión, consulta compresión de caché.
force-compressioncache-totrue,falsefalseForzar la aplicación de compresión, consulta compresión de caché.
ignore-errorcache-toBooleanfalseIgnorar los errores causados por exportaciones de caché fallidas.

Puedes elegir cualquier valor válido para ref, siempre que no sea el mismo que la ubicación de destino a la que envías tu imagen. Podrías elegir diferentes etiquetas (por ejemplo, foo/bar:latest y foo/bar:build-cache), nombres de imagen separados (por ejemplo, foo/bar y foo/bar-cache) o incluso registros diferentes (por ejemplo, docker.io/foo/bar y ghcr.io/foo/bar). Depende de ti decidir la estrategia que quieres usar para separar tu imagen de tus imágenes de caché.

Si el destino de --cache-from no existe, el paso de importación de caché fallará, pero la compilación continuará.

Lecturas adicionales

Para una introducción al almacenamiento en caché, consulta Caché de compilación de Docker.

Para obtener más información sobre el backend de caché registry, consulta el README de BuildKit.