我正在尝试基于 Ubuntu 22.04 创建 Docker 容器。apt-get install
打包时,我收到一个奇怪的错误:几十个,有时是几百个包成功成功,没有问题,然后一个单独的包会失败并出现错误403 forbidden
。
此问题是间歇性的。当一个软件包失败时,当我重试 Docker 构建时,它会持续失败。但是一旦我清除 Docker 构建缓存,或者第二天再试一次,另一个软件包就会成为问题。
偶尔也不会出现任何问题,整个构建都会成功。
我已经排除的原因:
- 坏的存储库:有问题的软件包总是来自与几秒钟前刚刚成功的所有其他软件包相同的 Apt 存储库
- 防火墙问题:当我访问
curl
出现 403 错误的 URL 时,无论是在容器外还是在新ubuntu:22.04
容器中,它都可以正常工作 - DNS:使用同一个安装命令,来自同一 URL 的许多其他软件包安装得很好
我也尝试过从 切换archive.ubuntu.com
到us.archive.ubuntu.com
,但这并没有解决问题。我目前正在尝试使用mirror://mirrors.ubuntu.com/mirrors.txt
,但这会导致安装速度慢几个数量级。
我发现其他几个问题都出现了 403 错误,这是由于防火墙或 DNS 问题导致的,所有软件包或存储库都出现了该错误。这是一个不同的问题,因为在发生故障之前,我可以从同一个存储库成功安装软件包。