You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Python镜像构建Docker镜像时遇gpg: no valid OpenPGP data found错误求助

解决Docker构建时gpg: no valid OpenPGP data found错误

以下是针对问题的具体修复方案,核心是修正Chrome源配置、正确导入官方密钥,并调整废弃的apt命令用法:

错误原因分析

  • Chrome源地址错误:原Dockerfile中写的http://dl.google.com.linux/chrome/deb是无效地址,正确地址应为http://dl.google.com/linux/chrome/deb/
  • 密钥导入方式问题:apt-key add已被官方废弃,且你使用的本地key.pub可能无效或路径有误
  • 命令语法错误:apt-get update - y多了空格,且update命令不需要-y参数

修正后的Dockerfile

FROM python:3.10.6 as base

# 修正文件复制路径:确保mydir内容放到正确位置
COPY requirements.txt .
ADD mydir /mydir/
ADD tests /mydir/tests
ADD src /mydir/src

RUN python -m pip install --upgrade pip && \
    pip install -r requirements.txt

# 安装依赖并正确配置Chrome源
RUN apt-get update && \
    apt-get install -y ca-certificates wget gnupg curl unzip --no-install-recommends && \
    # 从Google官方获取并导入Chrome密钥,使用推荐的keyring方式
    wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | gpg --dearmor -o /usr/share/keyrings/google-chrome-keyring.gpg && \
    # 写入正确的Chrome源,指定密钥环
    echo "deb [arch=amd64 signed-by=/usr/share/keyrings/google-chrome-keyring.gpg] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list && \
    apt-get update && \
    apt-get install -y google-chrome-stable && \
    # 下载对应版本的ChromeDriver
    CHROMEVER=$(google-chrome --product-version | grep -o "[^\.]*\.[^\.]*\.[^\.]*") && \
    DRIVERVER=$(curl -s "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_$CHROMEVER") && \
    wget -q --continue -P /chromedriver "https://chromedriver.storage.googleapis.com/$DRIVERVER/chromedriver_linux_64.zip" && \
    unzip /chromedriver/chromedriver* -d /chromedriver && \
    # 清理apt缓存减小镜像体积
    rm -rf /var/lib/apt/lists/*

# 安装Node.js、npm及Appium相关工具
RUN apt-get update && \
    apt-get install -y nodejs npm && \
    npm install -g appium appium-doctor && \
    rm -rf /var/lib/apt/lists/*

ENV PATH /chromedriver:$PATH
ENV PYTHONPATH /mydir

WORKDIR /mydir/tests/
ENTRYPOINT ["robot", "-d", "/test-results", "-C", "off"]

关键修改点说明

  • 修正Chrome源地址:补充了正确的路径分隔符,确保源地址有效
  • 密钥导入优化:直接从Google官方获取签名密钥,使用gpg --dearmor写入密钥环,替代废弃的apt-key add
  • 清理缓存:添加rm -rf /var/lib/apt/lists/*减少镜像体积,同时避免后续更新冲突
  • 修复命令语法:移除apt-get update后的无效-y参数
  • 调整文件复制路径:修正ADD mydir /mydir/workingdirectory为ADD mydir /mydir/,确保文件结构符合预期(如果你的原始路径确实需要workingdirectory,可以改回,但需确认本地文件结构)

另外,如果你坚持使用本地密钥文件,需要确保:

  • /mydir/src/keys/key.pub是有效的OpenPGP公钥文件(可以通过本地执行gpg --import key.pub验证)
  • 构建时该文件确实被复制到了镜像中的对应路径(可以在构建失败前添加RUN cat /mydir/src/keys/key.pub查看内容)

内容的提问来源于stack exchange,提问作者Jin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 18:45:20