pomerium/scripts/check-docker-images
2024-01-11 14:04:18 -07:00

20 lines
741 B
Bash
Executable file

#!/usr/bin/bash
set -euo pipefail
_project_root="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)/.."
for _f in $(find "$_project_root" -name "*Dockerfile*"); do
echo "checking $_f"
for _img in $(sed -n -r -e 's/^FROM ([^:]*)(:[^@]*)(@sha256[^ ]*).*$/\1\2\3/p' "$_f"); do
echo "- $_img"
_media_type="$(
docker buildx imagetools inspect \
--format='{{print .Manifest.MediaType }}' \
"$_img"
)"
if [[ "$_media_type" != "application/vnd.oci.image.index.v1+json" && "$_media_type" != "application/vnd.docker.distribution.manifest.list.v2+json" ]]; then
echo "not a multi-platform manifest"
exit 1
fi
done
done