在ECS中通过Docker为Puppeteer Sharp安装Chrome时遇gpg错误求助
解决Docker中安装Google Chrome时的gpg验证错误
你遇到的gpg: no valid OpenPGP data found错误,核心问题是获取谷歌签名密钥的环节出了问题——要么是原链接访问不稳定,要么是获取到的内容无效。可以按下面的方式修改Dockerfile来解决:
修正后的Dockerfile
##################### # PUPPETEER RECIPE ##################### FROM node:slim as build-image ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD true ARG FUNCTION_DIR # 安装依赖并导入谷歌签名密钥,修正密钥获取方式 RUN apt-get update && apt-get install --no-install-recommends -y \ gnupg \ wget \ ca-certificates \ && rm -rf /var/lib/apt/lists/* \ && wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | gpg --dearmor -o /usr/share/keyrings/google-chrome.gpg \ && echo "deb [arch=amd64 signed-by=/usr/share/keyrings/google-chrome.gpg] http://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google-chrome.list # 更新源并安装Chrome RUN apt-get update && apt-get install --no-install-recommends -y \ google-chrome-stable \ && rm -rf /var/lib/apt/lists/* ###################### # END PUPPETEER RECIPE ###################### ENV PUPPETEER_EXECUTABLE_PATH "/usr/bin/google-chrome-stable"
关键修改说明:
- 新增
ca-certificates包,确保SSL证书验证正常,避免wget获取密钥时出现证书类错误 - 将密钥文件存储到
/usr/share/keyrings/目录(Debian系系统推荐的密钥存储位置,替代旧的/etc/apt/trusted.gpg.d/) - 修改源列表格式,明确指定
signed-by参数,让apt清楚用哪个密钥验证源的合法性 - 把原链接
dl-ssl.google.com替换为dl.google.com,减少SSL访问可能带来的网络问题
内容的提问来源于stack exchange,提问作者user3615760
相关产品推荐
相关产品推荐

