【问题标题】:Building from Dockerfile and getting "The following signatures couldn't be verified because the public key is not available: NO_PUBKEY"从 Dockerfile 构建并获得“无法验证以下签名,因为公钥不可用:NO_PUBKEY”
【发布时间】:2020-08-18 16:29:42
【问题描述】:

我正在尝试使用启动的 Dockerfile 构建供本地使用的 PHP 5.3/Apache:

FROM php:5.3-apache

RUN apt-get update && \
    apt-get install -y \
    libfreetype6-dev \
    libjpeg62-turbo-dev \
    libmcrypt-dev \
    libpng-dev

但是当“阅读包列表”时,我得到:

W: GPG error: http://security.debian.org jessie/updates InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 9D6D8F6BC857C906 NO_PUBKEY AA8E81B4331F7F50
W: GPG error: http://http.debian.net jessie-updates InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 7638D0442B90D010
W: GPG error: http://http.debian.net jessie Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 7638D0442B90D010

阅读this page后,我尝试在第一行之后添加:

RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys AA8E81B4331F7F50 && \
    apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7638D0442B90D010

但是得到这个错误:

W: There is no public key available for the following key IDs:
9D6D8F6BC857C906
W: Failed to fetch http://http.debian.net/debian/dists/jessie/Release.gpg  Connection failed [IP: 130.89.148.77 80]

对 Ubuntu 与 Debian 几乎一无所知,我尝试了相同的方法,但使用 keyring.debian.org 代替 keyserver.ubuntu.com 并得到:

gpgkeys: key AA8E81B4331F7F50 can't be retrieved
gpg: no valid OpenPGP data found.
gpg: Total number processed: 0

来自another question 我试过这个:

RUN apt-get update && \
    apt-get install -y --no-install-recommends \
    apt-transport-https \
    ca-certificates
RUN apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys AA8E81B4331F7F50
RUN apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 7638D0442B90D010

但得到与原来相同的 GPG 错误。

我现在不知道如何进行。 (我知道 PHP 5.3 非常 已经过时了,但很遗憾我无法更改。)

【问题讨论】:

    标签: docker debian


    【解决方案1】:

    来自http://forums.debian.net/viewtopic.php?f=10&t=141778,一种解决方案是。

    gpg --recv-keys AA8E81B4331F7F50
    gpg --export AA8E81B4331F7F50| apt-key add -
    

    Dockerfile 可能如下所示:

    FROM php:5.3-apache
    
    RUN for key in AA8E81B4331F7F50 7638D0442B90D010 9D6D8F6BC857C906; do \
            gpg --recv-keys "$key" \
            && gpg --export "$key" | apt-key add - ; \
        done
    
    RUN apt-get update && \
        apt-get install -y \
            libfreetype6-dev \
            libjpeg62-turbo-dev \
            libmcrypt-dev \
            libpng-dev
    

    【讨论】:

      【解决方案2】:

      经过几次尝试和错误,我发现只要这样做,没有前面安装 apt-transport-https ca-certificates 似乎就可以完成这项工作:

      RUN apt-key adv --keyserver hkp://pool.sks-keyservers.net:80 --recv-keys AA8E81B4331F7F50 && \
          apt-key adv --keyserver hkp://pool.sks-keyservers.net:80 --recv-keys 7638D0442B90D010
      

      我确实收到此错误,但它似乎不会影响任何事情,然后安装继续:

      W: There is no public key available for the following key IDs:
      9D6D8F6BC857C906
      

      【讨论】:

        【解决方案3】:

        如果您在 Debian/Debian(Container) 上,请解决您的问题:

        W: There is no public key available for the following key IDs:
        9D6D8F6BC857C906
        

        试试下面的代码:

        sudo apt-get install debian-keyring debian-archive-keyring
        
        sudo apt-key update
        
        sudo apt-get update
        

        【讨论】:

          猜你喜欢
          • 2022-10-05
          • 2022-11-25
          • 2022-07-17
          • 2021-04-12
          • 1970-01-01
          • 2020-01-19
          • 2013-05-28
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多