summaryrefslogtreecommitdiff
path: root/scripts/resolve-digests.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/resolve-digests.sh')
-rwxr-xr-xscripts/resolve-digests.sh31
1 files changed, 31 insertions, 0 deletions
diff --git a/scripts/resolve-digests.sh b/scripts/resolve-digests.sh
new file mode 100755
index 0000000..526d463
--- /dev/null
+++ b/scripts/resolve-digests.sh
@@ -0,0 +1,31 @@
1#!/usr/bin/env bash
2# Resolve an image tag to a content-addressable digest for pinning.
3#
4# Usage:
5# scripts/resolve-digests.sh public.ecr.aws/q9t5s3a7/vllm-cpu-release-repo:latest
6# scripts/resolve-digests.sh # default image
7#
8# Prints three lines:
9# repo: public.ecr.aws/q9t5s3a7/vllm-cpu-release-repo
10# digest: sha256:abc123...
11# pin: public.ecr.aws/q9t5s3a7/vllm-cpu-release-repo@sha256:abc123...
12#
13# Paste the digest into the env's terraform (var.image_digest) to pin.
14set -euo pipefail
15
16IMG="${1:-public.ecr.aws/q9t5s3a7/vllm-cpu-release-repo:latest}"
17
18engine=""
19if command -v podman >/dev/null 2>&1; then engine=podman
20elif command -v docker >/dev/null 2>&1; then engine=docker
21else
22 echo "need podman or docker on PATH" >&2; exit 1
23fi
24
25"$engine" pull --quiet "$IMG" >/dev/null
26digest="$("$engine" image inspect "$IMG" --format '{{.Digest}}')"
27repo="${IMG%:*}"
28
29printf 'repo: %s\n' "$repo"
30printf 'digest: %s\n' "$digest"
31printf 'pin: %s@%s\n' "$repo" "$digest"