Registry 快取
目錄
`registry` 快取儲存後端可以視為 `inline` 快取的延伸。 與 `inline` 快取不同,`registry` 快取與映像檔完全分開,允許更靈活的使用 - 以 `registry` 為後盾的快取可以執行 `inline` 快取可以執行的所有操作,甚至更多。
- 允許將快取和產生的映像檔構件分開,以便您可以在沒有內部快取的情況下發佈最終映像檔。
- 它可以在 `max` 模式下有效地快取多階段建置,而不僅僅是最後一個階段。
- 它與其他匯出器一起使用以獲得更大的靈活性,而不僅僅是 `image` 匯出器。
預設的 `docker` 驅動程式不支援此快取儲存後端。 要使用此功能,請使用不同的驅動程式建立新的建置器。 如需更多資訊,請參閱建置驅動程式。
概要
與較簡單的 `inline` 快取不同,`registry` 快取支援多個設定參數。
$ docker buildx build --push -t <registry>/<image> \
--cache-to type=registry,ref=<registry>/<cache-image>[,parameters...] \
--cache-from type=registry,ref=<registry>/<cache-image> .
下表描述了您可以傳遞給 `--cache-to` 和 `--cache-from` 的可用 CSV 參數。
名稱 | 選項 | 類型 | 預設值 | 說明 |
---|---|---|---|---|
ref | `cache-to`, `cache-from` | 字串 | 要匯入的快取映像檔的完整名稱。 | |
mode | `cache-to` | `min`, `max` | min | 要匯出的快取層,請參閱快取模式。 |
oci-mediatypes | `cache-to` | `true`, `false` | true | 在匯出的資訊清單中使用 OCI 媒體類型,請參閱OCI 媒體類型。 |
image-manifest | `cache-to` | `true`, `false` | false | 使用 OCI 媒體類型時,為快取映像檔產生映像檔資訊清單而不是映像檔索引,請參閱OCI 媒體類型。 |
compression | `cache-to` | `gzip`, `estargz`, `zstd` | gzip | 壓縮類型,請參閱快取壓縮。 |
compression-level | `cache-to` | 0..22 | 壓縮級別,請參閱快取壓縮。 | |
force-compression | `cache-to` | `true`, `false` | false | 強制套用壓縮,請參閱快取壓縮。 |
ignore-error | `cache-to` | 布林值 | false | 忽略快取匯出失敗引起的錯誤。 |
您可以為 `ref` 選擇任何有效值,只要它與您推送映像檔的目標位置不同即可。 您可以選擇不同的標籤(例如 `foo/bar:latest` 和 `foo/bar:build-cache`)、不同的映像檔名稱(例如 `foo/bar` 和 `foo/bar-cache`),甚至不同的儲存庫(例如 `docker.io/foo/bar` 和 `ghcr.io/foo/bar`)。 由您決定要使用的策略,將映像檔與快取映像檔分開。
如果 `--cache-from` 目標不存在,則快取匯入步驟將會失敗,但建置會繼續。
進一步閱讀
有關快取的簡介,請參閱Docker 建置快取。
有關 `registry` 快取後端的更多資訊,請參閱BuildKit README。