Share feedback
Answers are generated based on the documentation.

OCI 与 Docker 导出器

oci 导出器将构建结果输出为 OCI 镜像布局 tar 包。docker 导出器的行为方式相同,只是它导出的是 Docker 镜像布局。

docker 驱动 不支持这些导出器。如果你想生成这些输出,必须使用 docker-container 或其他驱动。

概要(Synopsis)

使用 ocidocker 导出器构建容器镜像:

$ docker buildx build --output type=oci[,parameters] .
$ docker buildx build --output type=docker[,parameters] .

下表描述了可用的参数:

参数 类型 默认值 描述
name String 指定镜像名称(可多个)
dest String 路径
tar true,false true 将输出打包为 tar 包布局
compression uncompressed,gzip,estargz,zstd gzip 压缩类型,请参阅 压缩
compression-level 0..22 压缩级别,请参阅 压缩
force-compression true,false false 强制应用压缩,请参阅 压缩
oci-mediatypes true,false 在导出器清单中使用 OCI 媒体类型。type=oci 默认为 truetype=docker 默认为 false。请参阅 OCI 媒体类型
annotation.<key> String 使用相应的 keyvalue 将注解附加到构建的镜像上,请参阅 注解
rewrite-timestamp true,false false 将文件时间戳重写为 SOURCE_DATE_EPOCH 值。有关如何指定 SOURCE_DATE_EPOCH 值,请参阅 构建可复现性

Annotations

这些导出器支持使用 annotation 参数(后跟使用点表示法的注解名称)添加 OCI 注解。以下示例设置了 org.opencontainers.image.title 注解:

$ docker buildx build \
    --output "type=<type>,name=<registry>/<image>,annotation.org.opencontainers.image.title=<title>" .

有关注解的更多信息,请参阅 BuildKit 文档

延伸阅读

有关 ocidocker 导出器的更多信息,请参阅 BuildKit README