问题描述
我正在尝试使用启动以下代码的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
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 vs 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已经非常过时了,但不幸的是我不能更改它。)
解决方法
经过多次尝试和错误后,我发现仅执行此操作而不安装先前安装的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
,
从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