diff --git a/README.md b/README.md index b3557ad66..5e155706c 100644 --- a/README.md +++ b/README.md @@ -210,6 +210,8 @@ We can run the kaniko executor image locally in a Docker daemon to build and pus ``` ### Caching + +#### Caching Layers kaniko currently can cache layers created by `RUN` commands in a remote repository. Before executing a command, kaniko checks the cache for the layer. If it exists, kaniko will pull and extract the cached layer instead of executing the command. @@ -219,6 +221,21 @@ Users can opt in to caching by setting the `--cache=true` flag. A remote repository for storing cached layers can be provided via the `--cache-repo` flag. If this flag isn't provided, a cached repo will be inferred from the `--destination` provided. +#### Caching Base Images +kaniko can cache images in a local directory that can be volume mounted into the kaniko image. +To do so, the cache must first be populated, as it is read-only. We provide a kaniko cache warming +image at `gcr.io/kaniko-project/warmer`: + +```shell +docker run -v $(pwd):/workspace gcr.io/kaniko-project/warmer:latest --cache-dir=/workspace/cache --image= --image= +``` + +`--image` can be specified for any number of desired images. +This command will cache those images by digest in a local directory named `cache`. +Once the cache is populated, caching is opted into with the same `--cache=true` flag as above. +The location of the local cache is provided via the `--cache-dir` flag, defaulting at `/cache` as with the cache warmer. +See the `examples` directory for how to use with kubernetes clusters and persistent cache volumes. + ### Pushing to Different Registries kaniko uses Docker credential helpers to push images to a registry. @@ -345,6 +362,12 @@ If `--destination=gcr.io/kaniko-project/test`, then cached layers will be stored _This flag must be used in conjunction with the `--cache=true` flag._ +#### --cache-dir + +Set this flag to specify a local directory cache for base images. Defaults to `/cache`. + +_This flag must be used in conjunction with the `--cache=true` flag._ + #### --cleanup Set this flag to cleanup the filesystem at the end, leaving a clean kaniko container (if you want to build multiple images in the same container, using the debug kaniko image)