gpg 上的非零 [错误] 代码:密钥服务器接收失败:无法分配请求的地址

问题描述 投票:0回答:2

我收到有关使用 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 或网络问题。

有什么建议吗?非常感谢您的帮助。

python docker debian gnupg
2个回答
6
投票

按照 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" \
) \

2
投票

更新:代码中的任何更改都没有效果。您需要再次运行您的代码,直到它正常工作(或者您在 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
可能不会改变任何内容。听起来很有可能。

© www.soinside.com 2019 - 2024. All rights reserved.