如何在python3.10-slim镜像中添加内部APT镜像的PGP公钥?
在python3.10-slim镜像中让APT信任内部镜像公钥的方法
因为python3.10-slim镜像砍掉了apt-key和gpg这类工具,而且没配置好源之前没法装软件,所以直接用APT官方推荐的密钥文件直接指定的方式就行,步骤如下:
- 把你已经复制到容器里的PGP公钥移到APT的信任密钥目录
假设你的公钥文件在/tmp/internal-repo.key,跑这条命令:
mv /tmp/internal-repo.key /usr/share/keyrings/internal-apt-repo.gpg注意:如果你的公钥不是ASCII armored格式(文件开头没有
-----BEGIN PGP PUBLIC KEY BLOCK-----),得先在宿主机转好再复制进来,宿主机上执行:gpg --armor --export 你的密钥ID > internal-repo.key- 把你已经复制到容器里的PGP公钥移到APT的信任密钥目录
- 配置APT源时明确指定密钥文件
在/etc/apt/sources.list.d/下新建一个源配置文件,比如internal.list,内容写成这样:deb [signed-by=/usr/share/keyrings/internal-apt-repo.gpg] http://你的内部APT镜像地址/ 发行版代号 组件
举个实际例子(如果是基于Ubuntu 22.04的slim镜像):deb [signed-by=/usr/share/keyrings/internal-apt-repo.gpg] http://mirror.example.com/ubuntu/ jammy main restricted
- 配置APT源时明确指定密钥文件
- 配置代理(如果你的内部镜像需要走代理访问)
在/etc/apt/apt.conf.d/下新建00proxy文件,内容填:
Acquire::http::Proxy "http://proxy.example.com:8080/"; Acquire::https::Proxy "http://proxy.example.com:8080/";替换成你实际的代理地址和端口。
- 配置代理(如果你的内部镜像需要走代理访问)
- 执行更新
直接跑:
apt update- 执行更新
这样整个过程完全不需要额外工具,纯文件操作就能让APT信任你的内部镜像公钥。
内容的提问来源于stack exchange,提问作者Dave
相关产品推荐
相关产品推荐

