因Nginx安装报错导致Docker镜像构建失败求助
解决Dockerfile中Nginx源GPG密钥验证失败的问题
你遇到的是Docker构建时Nginx官方源的GPG密钥无法验证的问题,错误提示NO_PUBKEY ABF5BD827BD9BF62,本质是通过curl获取密钥的方式可能因网络波动、密钥文件更新等原因未成功导入。下面是修复方案及细节说明:
修复后的Dockerfile RUN命令
RUN apt-get update && \ apt-get -y install curl gnupg2 && \ # 直接从密钥服务器获取指定指纹的密钥,比curl下载更可靠 apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ABF5BD827BD9BF62 && \ # 显式添加Nginx官方源(若你的Dockerfile之前未添加,必须补上) echo "deb http://nginx.org/packages/debian jessie nginx" >> /etc/apt/sources.list.d/nginx.list && \ apt-get update && \ apt-get -y install build-essential libpq-dev nginx supervisor && \ rm -rf /var/lib/apt/lists/*
关键修改说明
- 新增安装
gnupg2:apt-key adv命令依赖该工具,避免因缺少组件导致密钥导入失败 - 替换密钥导入逻辑:使用
apt-key adv --keyserver ...直接从公开密钥服务器拉取指定指纹的密钥,比curl下载密钥文件再导入的方式更稳定,尤其适配老旧Debian版本 - 显式添加Nginx源:确保系统能定位到Nginx官方仓库,这是后续安装Nginx的前提
额外提示
Debian Jessie已停止官方支持,Nginx官方可能不再维护对应版本的源。如果后续仍出现源访问失败,建议:
- 切换到更近期的Debian版本作为基础镜像(如Stretch、Buster)
- 改用Debian官方源中的Nginx包替代Nginx官方源
内容的提问来源于stack exchange,提问作者shantanuo
相关产品推荐
相关产品推荐

