Cache local
Le stockage de cache local
est une option de cache simple qui stocke votre cache sous forme de fichiers
dans un répertoire sur votre système de fichiers, en utilisant une
disposition d'image OCI
pour la structure de répertoire sous-jacente. Le cache local est un bon choix si vous
faites simplement des tests, ou si vous voulez la flexibilité de gérer vous-même une solution de stockage
partagée.
Synopsis
$ docker buildx build --push -t <registry>/<image> \
--cache-to type=local,dest=path/to/local/dir[,parameters...] \
--cache-from type=local,src=path/to/local/dir .
Le tableau suivant décrit les paramètres CSV disponibles que vous pouvez passer à
--cache-to
et --cache-from
.
Nom | Option | Type | Par défaut | Description |
---|---|---|---|---|
src |
cache-from |
Chaîne | Chemin du répertoire local d'où le cache est importé. | |
digest |
cache-from |
Chaîne | Digest du manifeste à importer, voir versionnement du cache. | |
dest |
cache-to |
Chaîne | Chemin du répertoire local où le cache est exporté. | |
mode |
cache-to |
min ,max |
min |
Couches de cache à exporter, voir mode de cache. |
oci-mediatypes |
cache-to |
true ,false |
true |
Utiliser les types de média OCI dans les manifestes exportés, voir types de média OCI. |
image-manifest |
cache-to |
true ,false |
true |
Lors de l'utilisation des types de média OCI, générer un manifeste d'image au lieu d'un index d'image pour l'image de cache, voir types de média OCI. |
compression |
cache-to |
gzip ,estargz ,zstd |
gzip |
Type de compression, voir compression de cache. |
compression-level |
cache-to |
0..22 |
Niveau de compression, voir compression de cache. | |
force-compression |
cache-to |
true ,false |
false |
Appliquer la compression de force, voir compression de cache. |
ignore-error |
cache-to |
Booléen | false |
Ignorer les erreurs causées par les exportations de cache échouées. |
Si le cache src
n'existe pas, alors l'étape d'importation du cache échouera, mais la
construction continue.
Versionnement du cache
Cette section décrit comment fonctionne le versionnement pour les caches sur un système de fichiers local,
et comment vous pouvez utiliser le paramètre digest
pour utiliser des versions plus anciennes du cache.
Si vous inspectez manuellement le répertoire de cache, vous pouvez voir la disposition d'image OCI résultante :
$ ls cache
blobs index.json ingest
$ cat cache/index.json | jq
{
"schemaVersion": 2,
"manifests": [
{
"mediaType": "application/vnd.oci.image.index.v1+json",
"digest": "sha256:6982c70595cb91769f61cd1e064cf5f41d5357387bab6b18c0164c5f98c1f707",
"size": 1560,
"annotations": {
"org.opencontainers.image.ref.name": "latest"
}
}
]
}
Comme les autres types de cache, le cache local est remplacé lors de l'exportation, en remplaçant le
contenu du fichier index.json
. Cependant, les caches précédents seront toujours
disponibles dans le répertoire blobs
. Ces anciens caches sont adressables par digest,
et conservés indéfiniment. Par conséquent, la taille du cache local continuera à
croître (voir moby/buildkit#1896
pour plus d'informations).
Lors de l'importation du cache à l'aide de --cache-from
, vous pouvez spécifier le paramètre digest
pour forcer le chargement d'une version plus ancienne du cache, par exemple :
$ docker buildx build --push -t <registry>/<image> \
--cache-to type=local,dest=path/to/local/dir \
--cache-from type=local,ref=path/to/local/dir,digest=sha256:6982c70595cb91769f61cd1e064cf5f41d5357387bab6b18c0164c5f98c1f707 .
Pour aller plus loin
Pour une introduction à la mise en cache, voir Cache de construction Docker.
Pour plus d'informations sur le backend de cache local
, voir le
README de BuildKit.