Skip to content

Commit 4b6d006

Browse files
massongitclaude
andcommitted
fix: index.jsonの代わりにmanifest.jsonでレイヤーパスを取得
ubuntu-latest(Docker 27)のdocker saveではindex.jsonの manifests[0]が必ずしも画像マニフェストではないため、 Docker レガシー形式のmanifest.jsonからLayersを直接取得する方式に変更。 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 79af2e1 commit 4b6d006

1 file changed

Lines changed: 7 additions & 7 deletions

File tree

scripts/deploy_hato_bot/update_uv_version/get_uv_version.sh

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,22 @@ docker pull "$image_tag"
66
tmp_tar=$(mktemp)
77
trap 'rm "$tmp_tar"' EXIT
88
docker save "$image_tag" -o "$tmp_tar"
9-
manifest_digest=$(tar -xOf "$tmp_tar" index.json | jq -r '.manifests[0].digest' | sed 's/sha256://')
9+
home_uv_path=$HOME/uv
1010

11-
for digest in $(tar -xOf "$tmp_tar" "blobs/sha256/$manifest_digest" | jq -r '.layers[].digest' | sed 's/sha256://'); do
12-
uv_path=$(tar -xOf "$tmp_tar" "blobs/sha256/$digest" 2>/dev/null | gunzip 2>/dev/null | tar -tf - 2>/dev/null | grep -E "usr/local/bin/uv$" | head -1)
11+
for layer in $(tar -xOf "$tmp_tar" manifest.json | jq -r '.[0].Layers[]'); do
12+
uv_path=$(tar -xOf "$tmp_tar" "$layer" 2>/dev/null | gunzip 2>/dev/null | tar -tf - 2>/dev/null | grep -E "usr/local/bin/uv$" | head -1)
1313

1414
if [ -z "$uv_path" ]; then
1515
continue
1616
fi
1717

18-
tar -xOf "$tmp_tar" "blobs/sha256/$digest" | gunzip | tar -xOf - "$uv_path" >"$HOME/uv"
19-
chmod +x "$HOME/uv"
18+
tar -xOf "$tmp_tar" "$layer" | gunzip | tar -xOf - "$uv_path" >"$home_uv_path"
19+
trap 'rm "$home_uv_path"' EXIT
20+
chmod +x "$home_uv_path"
2021
break
2122
done
2223

23-
trap 'rm "$HOME/uv"' EXIT
24-
uv_version=$("$HOME/uv" --version | sed -e 's/^uv //g')
24+
uv_version=$("$home_uv_path" --version | sed -e 's/^uv //g')
2525
sed -i -e "s/required-version = .*/required-version = \"$uv_version\"/g" pyproject.toml
2626
image_name=ghcr.io/astral-sh/uv
2727
image_tag=$image_name:$uv_version-python3.14-bookworm-slim

0 commit comments

Comments
 (0)