🐳

docker buildでGPG ERRORが起きる

2025/01/26に公開

現象

Dockerfileを書いてdocker buildしたら
ビルドが通らない。。。。GPG Error....??

先に結論

ググったらコレだった
https://blog.pinkumohikan.com/entry/signature-verification-error-occurs-during-docker-build

(他にもまとめてくれている先人がたくさんいるが備忘録の一つとしてまとめる)

発生したエラー

user@ip-999-999-999-999 ~/D/G/DockerSample (main)> docker build --no-cache -t docker-sample .
[+] Building 2.0s (6/10)                                                                                                                      docker:desktop-linux
 => [internal] load build definition from dockerfile                                                                                                          0.0s
 => => transferring dockerfile: 1.08kB                                                                                                                        0.0s
 => [internal] load metadata for docker.io/library/php:8.0-cli                                                                                                1.4s
 => [internal] load .dockerignore                                                                                                                             0.0s
 => => transferring context: 2B                                                                                                                               0.0s
 => CACHED [1/6] FROM docker.io/library/php:8.0-cli@sha256:0569e384b9064c04dec55dc6e41be41b494a878dfbb6577a7d76bd50cfd5bc00                                   0.0s
 => CANCELED [internal] load build context                                                                                                                    0.5s
 => => transferring context: 25.44MB                                                                                                                          0.5s
 => ERROR [2/6] RUN apt-get update && apt-get install -y     libzip-dev     zip     unzip     libfreetype6-dev     libjpeg62-turbo-dev     libpng-dev     li  0.5s
------                                                                                                                                                             
 > [2/6] RUN apt-get update && apt-get install -y     libzip-dev     zip     unzip     libfreetype6-dev     libjpeg62-turbo-dev     libpng-dev     libpq-dev     && docker-php-ext-configure zip     && docker-php-ext-configure gd --with-freetype --with-jpeg     && docker-php-ext-install zip fileinfo gd pdo_pgsql pdo pdo_mysql:
0.245 Get:1 http://deb.debian.org/debian bullseye InRelease [116 kB]                                                                                               
0.281 Get:2 http://deb.debian.org/debian-security bullseye-security InRelease [48.4 kB]                                                                            
0.301 Get:3 http://deb.debian.org/debian bullseye-updates InRelease [44.1 kB]                                                                                      
0.326 Err:1 http://deb.debian.org/debian bullseye InRelease
0.326   At least one invalid signature was encountered.
0.360 Err:2 http://deb.debian.org/debian-security bullseye-security InRelease
0.360   At least one invalid signature was encountered.
0.407 Err:3 http://deb.debian.org/debian bullseye-updates InRelease
0.407   At least one invalid signature was encountered.
0.410 Reading package lists...
0.416 W: GPG error: http://deb.debian.org/debian bullseye InRelease: At least one invalid signature was encountered.
0.416 E: The repository 'http://deb.debian.org/debian bullseye InRelease' is not signed.
0.416 W: GPG error: http://deb.debian.org/debian-security bullseye-security InRelease: At least one invalid signature was encountered.
0.416 E: The repository 'http://deb.debian.org/debian-security bullseye-security InRelease' is not signed.
0.416 W: GPG error: http://deb.debian.org/debian bullseye-updates InRelease: At least one invalid signature was encountered.
0.416 E: The repository 'http://deb.debian.org/debian bullseye-updates InRelease' is not signed.
------
dockerfile:5
--------------------
   4 |     # 必要なパッケージをインストールします
   5 | >>> RUN apt-get update && apt-get install -y \
   6 | >>>     libzip-dev \
   7 | >>>     zip \
   8 | >>>     unzip \
   9 | >>>     libfreetype6-dev \
  10 | >>>     libjpeg62-turbo-dev \
  11 | >>>     libpng-dev \
  12 | >>>     libpq-dev \
  13 | >>>     && docker-php-ext-configure zip \
  14 | >>>     && docker-php-ext-configure gd --with-freetype --with-jpeg \
  15 | >>>     && docker-php-ext-install zip fileinfo gd pdo_pgsql pdo pdo_mysql
  16 |     
--------------------
ERROR: failed to solve: process "/bin/sh -c apt-get update && apt-get install -y     libzip-dev     zip     unzip     libfreetype6-dev     libjpeg62-turbo-dev     libpng-dev     libpq-dev     && docker-php-ext-configure zip     && docker-php-ext-configure gd --with-freetype --with-jpeg     && docker-php-ext-install zip fileinfo gd pdo_pgsql pdo pdo_mysql" did not complete successfully: exit code: 100

View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/00tcbkwnbqe5r66m2ryhzjg62

Dockerのドキュメントによると

ドキュメントの記述

Docker Desktop で Linux コンテナとイメージを保管するのは、Mac ファイルシステム内の単一の大きな「 ディスク イメージ 」ファイルです。

https://docs.docker.jp/desktop/mac/space.html

だそうな。
ということは巨大なファイルがどこかにあるのか

Docker for MacではMacの上でDockerを動かしているのではなく
Mac上のVMでLinuxを動かし、そのLinux上でDockerを動かしている。
↑このLinuxVMのディスクイメージ

可視化してみた

oh...

alt text

そしてこのディスクイメージはdocker pruneしたところで基本的には縮小はしない。
このディスクイメージ上の空き容量が増えるだけ。
なぜなら、これはDockerのファイルではなくて、VMのディスクイメージなので。
縮小するとしたら、ディスクのパーティションを容量を少なくして切り直すようなものである。

このイメージを縮小するのに取れる手段は
VM側でディスクイメージ最適化操作をするか(→これdocker desktop mac 設定のバーをギュイ〜〜〜ンでできそう。ただ事前にdocker prune等で削除処理が必要)
VMを物理的に1回削除
削除すれば再びdocker使用時に適時、各種利用イメージの再取得再ビルドが行われ再構築されるので0からのスタートになる。

後者が簡単。
その後の初回起動は当然いちいち時間がかかるけど

試しにやってみたこと

1回このイメージファイルを完全にさくじょした後
64GBにしてみた
64GBのディスクイメージが生成された。

alt text
alt text

そこから8GBにしてみた
alt text

8GBにはならなかった。。。が、ある程度縮小された
alt text

docker pruneしてからこのバーをギュイーンと下げるだけでも
できるところまで縮小化してくれるような気がする。。。

64にもどしとこ

alt text
alt text

そしてバーを56GBに下げたところ
ディスクイメージも56GBになったので
ディスクイメージ内の空き容量がちゃんとあれば
ディスクイメージファイルも軽量化してくれると思われる。




気が済んだ。
イメージ類は、またビルドすればいいだけなので
ディスクイメージを一旦無に還して終了

Discussion