底辺

ゑ?

ある日突然現れるGPGエラーを解消する

2023/12/15

ある日突然airflowのdocker imageをベースイメージに使用しているリポジトリのCIが通らなくなった

https://hub.docker.com/r/apache/airflow/tags

 

...
 
14:00:24 [91m+ apt-get -y update
14:00:24 [0mGet:1 http://deb.debian.org/debian bullseye InRelease [116 kB]
14:00:24 Get:2 http://repo.mysql.com/apt/debian bullseye InRelease [17.9 kB]
14:00:24 Get:3 http://deb.debian.org/debian-security bullseye-security InRelease [48.4 kB]
14:00:24 Get:4 http://deb.debian.org/debian bullseye-updates InRelease [44.1 kB]
14:00:24 Err:2 http://repo.mysql.com/apt/debian bullseye InRelease
14:00:24 The following signatures couldn't be verified because the public key is not available: NO_PUBKEY B7B3B788A8D3785C
14:00:24 Get:5 https://packages.microsoft.com/debian/11/prod bullseye InRelease [3649 B]
14:00:25 Get:6 http://deb.debian.org/debian bullseye/main amd64 Packages [8062 kB]
14:00:25 Get:7 http://deb.debian.org/debian-security bullseye-security/main amd64 Packages [260 kB]
14:00:25 Get:8 http://deb.debian.org/debian bullseye-updates/main amd64 Packages [17.7 kB]
14:00:25 Get:9 https://packages.microsoft.com/debian/11/prod bullseye/main armhf Packages [24.9 kB]
14:00:26 Get:10 https://packages.microsoft.com/debian/11/prod bullseye/main all Packages [1214 B]
14:00:26 Get:11 https://packages.microsoft.com/debian/11/prod bullseye/main arm64 Packages [27.5 kB]
14:00:26 Get:12 https://packages.microsoft.com/debian/11/prod bullseye/main amd64 Packages [131 kB]
14:00:26 Get:13 https://apt.postgresql.org/pub/repos/apt bullseye-pgdg InRelease [123 kB]
14:00:26 Get:14 https://apt.postgresql.org/pub/repos/apt bullseye-pgdg/main amd64 Packages [305 kB]
14:00:28 Reading package lists...
14:00:28 [91mW: GPG error: http://repo.mysql.com/apt/debian bullseye InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY B7B3B788A8D3785C
14:00:28 E: The repository 'http://repo.mysql.com/apt/debian bullseye InRelease' is not signed.
 
...

 

↑のように、GPGエラーが出ている。

そもそもこのエラーが何かというと、リポジトリの正当性を証明するためのGPGキー(公開鍵)が無効になっているというもの。

今回で言うと、mysqlリポジトリのGPGキーが無効になっている。

なぜいきなりこんなことが起きるかというと、mysql側がリポジトリのキーを(いきなり?)更新したけど、airflowのイメージにはそれが反映されていないため。

なのでとりあえずairflowのissueを確認してみる。

→ドンピシャのissueが立っている。

 

github.com

内容を読むと、やはり12/14でmysqlのrepoのGPGキーがexpireしているとのこと。
で、aiflowメンテナの人がimageの更新をしてくれるらしい。
少し待つと、imageを更新してくれていたので、こちら側で再度imageをpullすることで、解決。
再び問題無くCIは通るようになった。
 
(おまけ)
mysqlチームがこんなことをしたせいで対応する羽目になったairflowのメンテナの方はブチギレていた

https://github.com/apache/airflow/issues/36231#issuecomment-1858714018