summaryrefslogtreecommitdiff
path: root/scripts/resolve-digests.sh
blob: 526d4637a5a4c298dbd242c7b57c9ddf0239b5e3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/usr/bin/env bash
# Resolve an image tag to a content-addressable digest for pinning.
#
# Usage:
#   scripts/resolve-digests.sh public.ecr.aws/q9t5s3a7/vllm-cpu-release-repo:latest
#   scripts/resolve-digests.sh                          # default image
#
# Prints three lines:
#   repo:        public.ecr.aws/q9t5s3a7/vllm-cpu-release-repo
#   digest:      sha256:abc123...
#   pin:         public.ecr.aws/q9t5s3a7/vllm-cpu-release-repo@sha256:abc123...
#
# Paste the digest into the env's terraform (var.image_digest) to pin.
set -euo pipefail

IMG="${1:-public.ecr.aws/q9t5s3a7/vllm-cpu-release-repo:latest}"

engine=""
if command -v podman >/dev/null 2>&1; then engine=podman
elif command -v docker >/dev/null 2>&1; then engine=docker
else
  echo "need podman or docker on PATH" >&2; exit 1
fi

"$engine" pull --quiet "$IMG" >/dev/null
digest="$("$engine" image inspect "$IMG" --format '{{.Digest}}')"
repo="${IMG%:*}"

printf 'repo:   %s\n' "$repo"
printf 'digest: %s\n' "$digest"
printf 'pin:    %s@%s\n' "$repo" "$digest"