微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Docker 构建期间第二次 apt-get 更新后,Ubuntu 21.04 中的 GPG 错误

如何解决在 Docker 构建期间第二次 apt-get 更新后,Ubuntu 21.04 中的 GPG 错误

构建以下 Docker 文件时出错

FROM ubuntu:21.04

RUN apt-get update && \
    apt-get install --no-install-recommends -y curl=7.\* && \
    apt-get install --no-install-recommends -y unzip=6.\* &&\ 
    rm -rf /var/lib/apt/lists/*

RUN apt-get update && \
    mkdir -p /usr/share/man/man1 && \
    apt-get install --no-install-recommends -y maven=3.6.3-5 && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

第二个 apt-get update 运行时发生错误

错误如下:-

E: The repository 'http://security.ubuntu.com/ubuntu hirsute-security InRelease' is not signed.
W: GPG error: http://archive.ubuntu.com/ubuntu hirsute InRelease: gpgv,gpgv2 or gpgv1 required for verification,but neither seems installed
E: The repository 'http://archive.ubuntu.com/ubuntu hirsute InRelease' is not signed.
W: GPG error: http://archive.ubuntu.com/ubuntu hirsute-updates InRelease: gpgv,but neither seems installed
E: The repository 'http://archive.ubuntu.com/ubuntu hirsute-updates InRelease' is not signed.
W: GPG error: http://archive.ubuntu.com/ubuntu hirsute-backports InRelease: gpgv,but neither seems installed
E: The repository 'http://archive.ubuntu.com/ubuntu hirsute-backports InRelease' is not signed.

任何形式的帮助将不胜感激。

解决方法

这是 docker / seccomp / glibc 交互中的一个错误:https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/1916485

,

我已经运行了你的 docker 文件并得到了同样的错误。尝试各种方法来禁用验证也没有产生好的结果。也没有删除版本限制,只是安装最新版本的工具。我能找到的唯一解决方案是将 ubuntu 降级到 20.04,但该版本的操作系统没有 3.6.3-5 版本的 maven,只有 3.6.3-1 (afaik)。

我能得到的最接近的图像与您想要的图像完全不同:

FROM ubuntu:20.04

RUN apt update && \
    apt install --no-install-recommends -y curl=7.\* unzip=6.\* maven=3.6.3-1 && \
    apt clean && \
    rm -rf /var/lib/apt/lists/* && \
    mkdir -p /usr/share/man/man1

另请注意我如何使用 apt 而不是 apt-get 并且我只执行一次运行(通过只有一个层来制作更简单的图像)并且只执行一个 apt update 和将我想要安装的东西链接到一个 apt install 而不是单独的。这只是更快更容易。

但是,如果您想要一个 Maven 构建框,也许您最好使用来自 docker hub 的预构建 Maven 镜像之一,这些镜像本身基于 openjdk 镜像。对于 java,底层的 linux 发行版很少重要,而 openjdk 映像非常受尊重:

from maven:3.6.3-jdk-11
run apt update && apt install -y curl unzip && apt clean

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?