我收到有关使用 Python 3.7.7 构建 Debian:stretch-slim Docker 映像的消息:
gpg: keyserver receive failed: Cannot assign requested address
The command '/bin/sh -c set -ex [...]'
[...] returned a non-zero code: 2
我认为这是 GPG 或网络问题。
有什么建议吗?非常感谢您的帮助。
按照 Laurent Sittler 的建议,解决方案是向 gpg 服务器添加选项。
在 Dockerfile 中找到这一行:
&& gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$GPG_KEY" \
并将其替换为此块:
&& ( \
gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$GPG_KEY" \
|| gpg --batch --keyserver pgp.mit.edu --recv-keys "$GPG_KEY" \
|| gpg --batch --keyserver keyserver.pgp.com --recv-keys "$GPG_KEY" \
) \
更新:代码中的任何更改都没有效果。您需要再次运行您的代码,直到它正常工作(或者您在 if 语句中添加更多下载位置,以便减少您无法下载的机会,请参阅此线程的其他答案。)
我只是将以下旧部分留在这里作为证据,证明任何安慰剂代码更改都对我没有帮助(因此在斜体中),它是随机的,并且奇怪地出现在每次第一次运行时,而在第二次运行时,它通常有效。
奔跑
sudo apt-get update
跑步前
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0F164EEB
如果在此之前有“echo”行,请运行 another
sudo apt-get update
甚至在此之前:
RUN apt-get update
RUN sh -c 'echo "..." > /etc/...'
RUN apt-get update
RUN apt-key adv ...
通过此,我摆脱了类似的错误“无法分配请求的地址”:
Executing: /tmp/apt-key-gpghome.Up2U8vHXpt/gpg.1.sh --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key C1CF6E31E6
gpg: keyserver receive failed: Cannot assign requested address
ERROR: Service 'listener' failed to build: The command '/bin/sh -c apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key C1CF6E31E6' returned a non-zero code: 2
最有可能的是:服务器正忙,请重试
这可能是一个安慰剂,因为这个答案是相同的错误,但在另一个上下文中表示当地址正忙时可能会出现这种情况。这意味着:如果您遇到此错误,请重试,然后
sudo apt-get update
可能不会改变任何内容。听起来很有可能。