我想apt-cacher
在本地用作我的包代理。尤其是当我重建时我的 Docker 镜像连续几次。我已apt-cacher
在我的系统上安装并运行。
我将代理地址设置为:(http://melroy-pc:3142
是melroy-pc
我的主机名)。就我而言,我创建一个/etc/apt/apt.conf.d/02proxy
文件:
Acquire::http::proxy "http://melroy-pc:3142";
Acquire::https::proxy "http://melroy-pc:3142";
(我已经尝试只定义http::proxy
(没有 https),我还尝试添加APT::Get::AllowUnauthenticated "true";
,所有没有运气好的话)
之后我只需运行我的 apt 命令(apt update 和 apt install)。这导致了现在的问题:
Step 9/41 : RUN apt-get update && apt-get install -y --no-install-recommends dirmngr gnupg gnupg-l10n gnupg-utils gpg gpg-agent gpg-wks-client gpg-wks-server gpgconf gpgsm libassuan0 libksba8 libldap-2.4-2 libldap-common libnpth0 libreadline8 libsasl2-2 libsasl2-modules libsasl2-modules-db libsqlite3-0 libssl1.1 lsb-base pinentry-curses readline-common apt-transport-https ca-certificates curl software-properties-common apt-utils net-tools
---> Running in af278cee1d52
Err:1 http://deb.debian.org/debian bullseye InRelease
403 Access to cache prohibited [IP: 192.168.2.166 3142]
Err:2 http://security.debian.org/debian-security bullseye-security InRelease
403 Access to cache prohibited [IP: 192.168.2.166 3142]
Err:3 http://deb.debian.org/debian bullseye-updates InRelease
403 Access to cache prohibited [IP: 192.168.2.166 3142]
Reading package lists...
E: The repository 'http://deb.debian.org/debian bullseye InRelease' is not signed.
E: Failed to fetch http://deb.debian.org/debian/dists/bullseye/InRelease 403 Access to cache prohibited [IP: 192.168.2.166 3142]
E: Failed to fetch http://security.debian.org/debian-security/dists/bullseye-security/InRelease 403 Access to cache prohibited [IP: 192.168.2.166 3142]
E: The repository 'http://security.debian.org/debian-security bullseye-security InRelease' is not signed.
E: Failed to fetch http://deb.debian.org/debian/dists/bullseye-updates/InRelease 403 Access to cache prohibited [IP: 192.168.2.166 3142]
E: The repository 'http://deb.debian.org/debian bullseye-updates InRelease' is not signed.
重要的提示:我的包裹都收到了成功地当我不使用代理时,已安装,没有任何问题。
这种方法过去曾经有效,当时我使用apt-key
而不是gpg
(我不知道它是否相关,看我的另一个问题)。
答案1
正如 @cas 指出的,Docker 主机通常使用另一个本地 IP 块中的私有 IP 地址。并且默认情况下 apt-cacher 在 1.7.0 版本之后使用allowed_hosts = ''
作为默认值而不是*
.
我的解决方案:取消注释allowed_hosts
设置并将值放入文件*
中/etc/apt-cacher/apt-cacher.conf
:
allowed_hosts = *
这将允许所有 IP 地址(包括 Docker IP)。当然可以还指定具体范围。