need other commands to get sizes for docker buildx?

This commit is contained in:
Ralf Vogler 2025-05-25 02:00:41 +02:00
parent d508675d0b
commit 6f3dbdbe14

View file

@ -96,14 +96,18 @@ jobs:
- name: Docker (un)compressed sizes
run: |
echo '```console' >> "$GITHUB_STEP_SUMMARY"
echo '# Uncompressed size (max, not size on disk due to sharing):'
echo '$ docker image ls' >> "$GITHUB_STEP_SUMMARY"
docker image ls | tee -a "$GITHUB_STEP_SUMMARY"
echo
echo '# size = unique + shared:'
echo '$ docker system df -v' >> "$GITHUB_STEP_SUMMARY"
docker system df -v | tee -a "$GITHUB_STEP_SUMMARY"
echo
# echo '# Uncompressed size (max, not size on disk due to sharing):'
# echo '$ docker image ls' >> "$GITHUB_STEP_SUMMARY"
# docker image ls | tee -a "$GITHUB_STEP_SUMMARY"
# echo
# echo '# size = unique + shared:'
# echo '$ docker system df -v' >> "$GITHUB_STEP_SUMMARY"
# docker system df -v | tee -a "$GITHUB_STEP_SUMMARY"
## the above work locally, but in CI with buildx just list moby/buildkit and tonistiigi/binfmt
echo "# Compressed sizes:" >> "$GITHUB_STEP_SUMMARY"
dockersize() { docker manifest inspect -v "$1" | jq -c 'if type == "array" then .[] else . end' | 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 ; }
dockersize ghcr.io/${{ github.actor }}/free-games-claimer:${{env.IMAGE_TAG}}
dockersize ghcr.io/${{ github.actor }}/free-games-claimer:${{env.IMAGE_TAG}} | tee -a "$GITHUB_STEP_SUMMARY"
log() { echo "\$ $@" >> "$GITHUB_STEP_SUMMARY"; "$@" >> "$GITHUB_STEP_SUMMARY"; }
log docker buildx history inspect
log docker buildx du
echo '```' >> "$GITHUB_STEP_SUMMARY"