Open1

Docker環境でnvidiaからNO_PUBKEYと怒られた時の対処法

takakurasatotakakurasato

Dockerfileからイメージをビルドしようとした時や、既にビルド済みのイメージでapt-get updateapt-get upgradeをした時に

W: GPG error: https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64  InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY A4B469963BF863CC

といったようなエラーが出た時の対処法です。

エラー文に表示されているアドレスにアクセスします。
(この場合はhttps://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64)
そしてアクセスした先で表示されたpubキー二つのパスをメモしておきます。
下の画像の場合は3bf863cc.pub7fa2af80.pubです。

その後、Dockerfileからビルドしようとしている場合には上二つのpubキーをapt-key advで追加します。
具体的には以下のようになるはずです。

# apt-get update や apt-get upgrade の前に
RUN apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub
RUN apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub

Dockerコンテナ内では以下のコマンドを実行します。

apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub
apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub

以上のプロセスを経ることで、nvidiaからの警告がなくなるはずです。