登錄檔快取
目錄
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 | true | 使用 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。