Skip to content

Commit b6eded7

Browse files
massongitclaude
andcommitted
fix: レイヤーをファイルに書き出してtarに圧縮形式を自動検出させる
Docker 27+containerdはlayersを非圧縮で保存するためgunzipが失敗していた。 レイヤーblob をtmpファイルに書き出し、tar -tfで圧縮形式を自動検出させることで gzip圧縮(macOS/Docker Desktop)と非圧縮(ubuntu-latest/Docker 27)の 両方に対応する。 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 2dcacf0 commit b6eded7

1 file changed

Lines changed: 8 additions & 10 deletions

File tree

scripts/deploy_hato_bot/update_uv_version/get_uv_version.sh

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,28 +3,26 @@ set -e
33

44
image_tag=ghcr.io/dependabot/dependabot-updater-uv
55
docker pull "$image_tag"
6+
67
tmp_tar=$(mktemp)
78
trap 'rm "$tmp_tar"' EXIT
9+
810
docker save "$image_tag" -o "$tmp_tar"
9-
home_uv_path=$HOME/uv
1011

11-
echo "=== manifest.json Layers ===" >&2
12-
tar -xOf "$tmp_tar" manifest.json | jq -r '.[0].Layers[]' >&2
12+
tmp_layer=$(mktemp)
13+
trap 'rm "$tmp_layer"' EXIT
1314

14-
first_layer=$(tar -xOf "$tmp_tar" manifest.json | jq -r '.[0].Layers[0]')
15-
echo "=== first layer file type ===" >&2
16-
tar -xOf "$tmp_tar" "$first_layer" 2>/dev/null | file - >&2
17-
echo "=== first layer contents (head 10) ===" >&2
18-
tar -xOf "$tmp_tar" "$first_layer" 2>/dev/null | gunzip 2>/dev/null | tar -tf - 2>/dev/null | head -10 >&2
15+
home_uv_path=$HOME/uv
1916

2017
for layer in $(tar -xOf "$tmp_tar" manifest.json | jq -r '.[0].Layers[]'); do
21-
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)
18+
tar -xOf "$tmp_tar" "$layer" >"$tmp_layer" 2>/dev/null
19+
uv_path=$(tar -tf "$tmp_layer" 2>/dev/null | grep -E "usr/local/bin/uv$" | head -1)
2220

2321
if [ -z "$uv_path" ]; then
2422
continue
2523
fi
2624

27-
tar -xOf "$tmp_tar" "$layer" | gunzip | tar -xOf - "$uv_path" >"$home_uv_path"
25+
tar -xOf "$tmp_layer" "$uv_path" >"$home_uv_path"
2826
trap 'rm "$home_uv_path"' EXIT
2927
chmod +x "$home_uv_path"
3028
break

0 commit comments

Comments
 (0)