Compartir comentarios
Las respuestas se generan en base a la documentación.

docker buildx imagetools create

DescripciónCrea una nueva imagen basada en imágenes de origen
Usodocker buildx imagetools create [OPTIONS] [SOURCE...]

Descripción

Crea una nueva lista de manifiestos basada en manifiestos de origen. Los manifiestos de origen pueden ser listas de manifiestos o manifiestos de distribución de una sola plataforma y deben existir previamente en el registro donde se crea el nuevo manifiesto.

Si se especifica una sola fuente y esta es una lista de manifiestos o un índice de imágenes, create realiza una copia idéntica. Si se especifica una sola fuente y esta no es una lista o índice, la salida será una lista de manifiestos; sin embargo, puedes desactivar este comportamiento con --prefer-index=false, lo que intentará preservar el formato del manifiesto de origen en la salida.

Opciones

OpciónPredeterminadoDescripción
--annotationAñade una anotación a la imagen
--appendAñade al manifiesto existente
--dry-runMuestra la imagen final en lugar de subirla (push)
-f, --fileLee el descriptor de origen desde un archivo
--metadata-fileEscribe los metadatos del resultado de la creación en un archivo
-p, --platformFiltra las plataformas especificadas de la imagen de destino
--prefer-indextrueCuando solo se especifica una fuente, prefiere generar un índice de imagen o una lista de manifiestos en lugar de realizar una copia idéntica
--progressautoEstablece el tipo de salida de progreso (auto, none, plain, rawjson, tty). Usa plain para mostrar la salida del contenedor
-t, --tagEstablece la referencia para la nueva imagen

Ejemplos

Añadir anotaciones a una imagen (--annotation)

La bandera --annotation te permite añadir anotaciones al índice de imagen, al manifiesto y a los descriptores al crear una nueva imagen.

El siguiente comando crea una imagen foo/bar:latest con la anotación org.opencontainers.image.authors en el índice de la imagen.

$ docker buildx imagetools create \
  --annotation "index:org.opencontainers.image.authors=dvdksn" \
  --tag foo/bar:latest \
  foo/bar:alpha foo/bar:beta foo/bar:gamma
Note

El comando imagetools create admite la adición de anotaciones al índice de imagen y descriptor, utilizando los siguientes prefijos de tipo:

  • index:
  • manifest-descriptor:

No admite anotar manifiestos o layouts OCI.

Para obtener más información sobre las anotaciones, consulta Anotaciones.

Añadir nuevas fuentes a una lista de manifiestos existente (--append)

Utiliza la bandera --append para añadir las nuevas fuentes a una lista de manifiestos existente en el destino.

Sobrescribir la instancia del builder configurada (--builder)

Igual que buildx --builder.

Mostrar la imagen final en lugar de subirla (--dry-run)

Utiliza la bandera --dry-run para no subir la imagen, sino simplemente mostrarla.

Leer el descriptor de origen desde un archivo (-f, --file)

-f FILE o --file FILE

Reads source from files. A source can be a manifest digest, manifest reference, or a JSON of OCI descriptor object.

Para definir anotaciones o propiedades adicionales de la plataforma como os.version y os.features, debes añadirlas en el objeto descriptor OCI codificado en JSON.

$ docker buildx imagetools inspect --raw alpine | jq '.manifests[0] | .platform."os.version"="10.1"' > descr.json
$ docker buildx imagetools create -f descr.json myuser/image

El descriptor en el archivo se fusiona con el descriptor existente en el registro, si existe.

Los campos compatibles para el descriptor se definen en la especificación de OCI.

Escribir los metadatos del resultado de la creación en un archivo (--metadata-file)

Para generar metadatos como el digest de la imagen, pasa la bandera --metadata-file. Los metadatos se escribirán como un objeto JSON en el archivo especificado. El directorio del archivo especificado debe existir previamente y tener permisos de escritura.

$ docker buildx imagetools create -t user/app:latest -f image1 -f image2 --metadata-file metadata.json
$ cat metadata.json
{
  "containerimage.descriptor": {
    "mediaType": "application/vnd.oci.image.index.v1+json",
    "digest": "sha256:19ffeab6f8bc9293ac2c3fdf94ebe28396254c993aea0b5a542cfb02e0883fa3",
    "size": 4654
  },
  "image.name": "docker.io/user/app"
}

Establecer la referencia para la nueva imagen (-t, --tag)

-t IMAGE o --tag IMAGE

Utiliza la bandera -t o --tag para establecer el nombre de la imagen que se va a crear.

$ docker buildx imagetools create --dry-run alpine@sha256:5c40b3c27b9f13c873fefb2139765c56ce97fd50230f1f2d5c91e55dec171907 sha256:c4ba6347b0e4258ce6a6de2401619316f982b7bcc529f73d2a410d0097730204
$ docker buildx imagetools create -t tonistiigi/myapp -f image1 -f image2