#!/bin/bash # Macro for finding the size of a container from any container registry,EG: mcr, gcp, or docker # Example use: # dockersize docker pull mcr.microsoft.com/devcontainers/universal:3 # linux/amd64 140.70M # linux/arm/v6 131.74M # linux/arm/v7 129.97M # linux/arm64/v8 132.15M # Credit to ddelange from this thread: https://stackoverflow.com/a/73108928/4577237 dockersize() { docker manifest inspect -v "$1" | jq -c 'if type == "array" then .[] else . end | select(.Descriptor.platform.architecture != "unknown")' | jq -r '[ ( .Descriptor.platform | [ .os, .architecture, .variant, ."os.version" ] | del(..|nulls) | join("/") ), ( [ ( .OCIManifest // .SchemaV2Manifest ).layers[].size ] | add ) ] | join(" ")' | numfmt --to iec --format '%.2f' --field 2 | sort | column -t ; }