OCI and Docker exporters

The oci exporter outputs the build result into an OCI image layout tarball. The docker exporter behaves the same way, except it exports a Docker image layout instead.

The docker driver doesn't support these exporters. You must use docker-container or some other driver if you want to generate these outputs.

Synopsis

Build a container image using the oci and docker exporters:

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

The following table describes the available parameters:

Parameter Type Default Description
name String Specify image name(s)
dest String Path
tar true,false true Bundle the output into a tarball layout
compression uncompressed,gzip,estargz,zstd gzip Compression type, see compression
compression-level 0..22 Compression level, see compression
force-compression true,false false Forcefully apply compression, see compression
oci-mediatypes true,false Use OCI media types in exporter manifests. Defaults to true for type=oci, and false for type=docker. See OCI Media types
annotation.<key> String Attach an annotation with the respective key and value to the built image,see annotations

Annotations

These exporters support adding OCI annotation using annotation parameter, followed by the annotation name using dot notation. The following example sets the org.opencontainers.image.title annotation:

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

For more information about annotations, see BuildKit documentation.

Further reading

For more information on the oci or docker exporters, see the BuildKit README.