モヒカンメモ

髪色が定期的に変わることに定評のある(比較的)若者Webエンジニアの備忘録

docker build時に署名検証失敗エラーが出たが、真の原因はファイルサイズ上限だった件

Docker for Macで docker build していたところ apt-get で署名検証失敗エラーが出たが、真の原因はDockerイメージの保存用ファイルがfullだったからだった。

ざっくりまとめ

  • Docker for Mac全体でのDockerイメージを保持するためのファイルのサイズ上限を決める設定がある
  • docker build 時に上記の上限を超えると、原因とは別のエラーが出る (今回でいうと At least one invalid signature was encountered. )
  • そうなったらイメージファイルのサイズ上限を引き上げるか、 docker system prune などを叩いてお掃除する必要がある

↓ Docker for Mac全体でのDockerイメージを保持するためのファイルのサイズ上限を決める設定

Docker for Mac - Settings - Resources - Virtual disk limit

調べたこと

Docker for Mac (Docker Desktop) で docker build をしたところ、下記のようなエラーが出た。

$ docker-compose up -d --build
...
 => ERROR [app stage-0 2/8] RUN apt-get update  0.9s
------
 > [app stage-0 2/8] RUN apt-get update:
0.143 Get:1 http://deb.debian.org/debian bookworm InRelease [151 kB]
0.170 Get:2 http://deb.debian.org/debian bookworm-updates InRelease [55.4 kB]
0.181 Get:3 http://deb.debian.org/debian-security bookworm-security InRelease [48.0 kB]
0.183 Err:1 http://deb.debian.org/debian bookworm InRelease
0.183   At least one invalid signature was encountered.
0.195 Err:2 http://deb.debian.org/debian bookworm-updates InRelease
0.195   At least one invalid signature was encountered.
0.207 Err:3 http://deb.debian.org/debian-security bookworm-security InRelease
0.207   At least one invalid signature was encountered.
0.208 Reading package lists...
0.211 W: GPG error: http://deb.debian.org/debian bookworm InRelease: At least one invalid signature was encountered.
0.211 E: The repository 'http://deb.debian.org/debian bookworm InRelease' is not signed.
0.211 W: GPG error: http://deb.debian.org/debian bookworm-updates InRelease: At least one invalid signature was encountered.
0.211 E: The repository 'http://deb.debian.org/debian bookworm-updates InRelease' is not signed.
0.211 W: GPG error: http://deb.debian.org/debian-security bookworm-security InRelease: At least one invalid signature was encountered.
0.211 E: The repository 'http://deb.debian.org/debian-security bookworm-security InRelease' is not signed.
------
failed to solve: process "/bin/sh -c apt-get update" did not complete successfully: exit code: 100

エラーを素直に読むとビルド失敗の原因は下記で、署名自体または署名の検証に何らかの問題がありそうと読み取れる。

0.183 Err:1 http://deb.debian.org/debian bookworm InRelease 0.183 At least one invalid signature was encountered.

が、実際には署名には問題がなく、真の原因はそこではなかった。

Docker "At least one invalid signature was encountered." というキーワードでググったところ、下記の記事がヒットした。

qiita.com

Docker for Macは使い続けるとコンテナデータやDockerイメージが溜まることを知っていた (以前にも苦しめられたとも言う) ので、Docker for Macの設定より Virtual disk limit128GB から 184GB へ引き上げたところビルドが通るようになったことを確認した。

Docker for Mac - Resources

Docker for Macの設定よりDockerイメージファイルがある場所を突き止め、下記記事を参考にコマンドを叩いたところ (117973668 / 1024/ 1024) = 112.5GBを実際に使っていたことを確認した。このとき、 ls -lh などでパッとでるサイズは割り当て済みサイズで、実際に使用済みの容量ではないことに注意。

docs.docker.jp

Docker for Macさん、実際は112.5GB使ってた

原因がわかってスッキリ〜。

ざっくりまとめ (再掲)

  • Docker for Mac全体でのDockerイメージを保持するためのファイルのサイズ上限を決める設定がある
  • docker build 時に上記の上限を超えると、原因とは別のエラーが出る (今回でいうと At least one invalid signature was encountered. )
  • そうなったらイメージファイルのサイズ上限を引き上げるか、 docker system prune などを叩いてお掃除する必要がある