apt安装失败时如何强制重试?APT::Acquire::重试似乎不起作用

Jea*_*rre 9 ubuntu apt http-status-code-404 docker bad-gateway

我正在使用一个镜像规范存储的企业存储库。我怀疑这个公司存储库不可靠,因为我有零星的故障,例如:

Failed to fetch ...  502  Bad Gateway [IP: ...]
Failed to fetch ...  404  Not Found [IP: ...]
Run Code Online (Sandbox Code Playgroud)

它似乎不依赖于要安装的包。考虑到这一点,我尝试使用APT::Acquire::Retries

RUN echo 'APT::Acquire::Retries "3";' > /etc/apt/apt.conf.d/80-retries
Run Code Online (Sandbox Code Playgroud)

(是的,我正在构建一个 docker 镜像)

以下是我安装软件包的方法:

...
    && apt install --no-install-recommends -y \
        curl \
        apt-utils \
        iputils-ping \
        nano \
        gridsite-clients\ 
...
Run Code Online (Sandbox Code Playgroud)

我感觉APT::Acquire::Retries没有考虑到(即使用更高的值,例如 30 ...)。

使用的基础镜像是 ubuntu:20.04,apt 版本等于 apt 2.0.8 (amd64)。

有什么线索吗?

[已编辑] 通过激活 apt.conf 上的以下调整,我设法摆脱了 502 错误:

RUN echo '\
Acquire::Retries "100";\
Acquire::https::Timeout "240";\
Acquire::http::Timeout "240";\
APT::Get::Assume-Yes "true";\
APT::Install-Recommends "false";\
APT::Install-Suggests "false";\
Debug::Acquire::https "true";\
' > /etc/apt/apt.conf.d/99custom
Run Code Online (Sandbox Code Playgroud)

在什么情况下(读取http状态代码错误)Acquire::Retries有效?