docker buildでGPG ERRORが起きる
現象
Dockerfileを書いてdocker buildしたら
ビルドが通らない。。。。GPG Error....??
先に結論
ググったらコレだった
(他にもまとめてくれている先人がたくさんいるが備忘録の一つとしてまとめる)
発生したエラー
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 ファイルシステム内の単一の大きな「 ディスク イメージ 」ファイルです。
だそうな。
ということは巨大なファイルがどこかにあるのか
Docker for MacではMacの上でDockerを動かしているのではなく
Mac上のVMでLinuxを動かし、そのLinux上でDockerを動かしている。
↑このLinuxVMのディスクイメージ
可視化してみた
oh...
そしてこのディスクイメージはdocker pruneしたところで基本的には縮小はしない。
このディスクイメージ上の空き容量が増えるだけ。
なぜなら、これはDockerのファイルではなくて、VMのディスクイメージなので。
縮小するとしたら、ディスクのパーティションを容量を少なくして切り直すようなものである。
このイメージを縮小するのに取れる手段は
VM側でディスクイメージ最適化操作をするか(→これdocker desktop mac 設定のバーをギュイ〜〜〜ンでできそう。ただ事前にdocker prune等で削除処理が必要)
VMを物理的に1回削除
削除すれば再びdocker使用時に適時、各種利用イメージの再取得再ビルドが行われ再構築されるので0からのスタートになる。
後者が簡単。
その後の初回起動は当然いちいち時間がかかるけど
試しにやってみたこと
1回このイメージファイルを完全にさくじょした後
64GBにしてみた
64GBのディスクイメージが生成された。
そこから8GBにしてみた
8GBにはならなかった。。。が、ある程度縮小された
docker pruneしてからこのバーをギュイーンと下げるだけでも
できるところまで縮小化してくれるような気がする。。。
64にもどしとこ
そしてバーを56GBに下げたところ
ディスクイメージも56GBになったので
ディスクイメージ内の空き容量がちゃんとあれば
ディスクイメージファイルも軽量化してくれると思われる。
・
・
・
気が済んだ。
イメージ類は、またビルドすればいいだけなので
ディスクイメージを一旦無に還して終了
Discussion