mirror of
https://github.com/rkt/rkt.git
synced 2026-03-13 09:40:21 +08:00
This replaces the `--no-store` and `--store-only` flags with a singular flag `--pull-policy` that can accept one of three things, `never`, `new`, and `update`. This is purely a cli change, there are no under the hood impacts. `--no-store` has been aliased to `--pull-policy=update` and `--store-only` has been aliased to `--pull-policy=never` for compatibility reasons.
2.5 KiB
2.5 KiB
Image Fetching Behavior
When fetching, rkt will try to avoid unnecessary network transfers: if an updated image is already in the local store there's no need to download it again.
This behavior can be controlled with the --pull-policy flag.
General Behavior
The following table describes the meaning of the --pull-policy flag.
This flag accepts one of three options:
| Option | Description |
|---|---|
new |
Default behavior in run and prepare Check the store, and if the image is missing fetch from remote |
update |
Default behavior in fetch Attempt to fetch from remote, but if the remote image matches something in our store don't pull it |
never |
Only check the store, and don't fetch from remote. |
Details
Here we detail the actions taken by rkt when fetching from store and remote for each type of image argument.
| Fetch from | Image argument | Detailed behavior |
|---|---|---|
| store | file:// | Use the specified file |
| store | http(s):// | Check for the URL in the local store. If found, use the corresponding image. |
| store | docker:// | Check for the URL in the local store. If found, use the corresponding image. |
| store | image name | Check local store. If found, use that image. If there's a file in the current directory named like the image name, use that file instead. |
| remote | file:// | Use the specified file |
| remote | http(s):// | Search in the store if the URL is available. If it's available and the saved Cache-Control maxage > 0 determine if the image should be downloaded. If it's not expired use the image. Otherwise download (sending if available the saved ETag). If the download returns a 304 Not Modified use the image already saved in the local store. |
| remote | docker:// | Fetch using docker2aci. |
| remote | image name | Execute discovery logic. If discovery is successful use the discovered URL doing the above remote http(s):// image case. If there's a file in the current directory named like the image name, use that file instead. |