构建以下 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, gpgv2 or gpgv1 required for verification, 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, gpgv2 or gpgv1 required for verification, but neither seems installed
E: The repository 'http://archive.ubuntu.com/ubuntu hirsute-backports InRelease' is not signed.
任何形式的帮助将不胜感激。
我已经运行了你的 docker 文件并得到了同样的错误。尝试各种禁用验证的方法也没有产生好的结果。也没有删除版本限制,只安装了最新版本的工具。我能找到的唯一解决方案是将 ubuntu 降级到 20.04,但是该版本的操作系统没有 3.6.3-5 版本的 maven,只有 3.6.3-1 (afaik)。
我能得到的最接近的工作与您想要的图像完全不同:
还要注意我如何使用
apt
而不是apt-get
并且我只进行一次运行(通过只有一个层来制作更简单的图像)并且只有一个apt update
并链接我想要的东西安装到单个apt install
而不是单独的。这只是更快更容易。但是,如果您想要一个 maven 构建框,也许最好建议您使用来自 docker hub 的预构建 maven 映像之一,这些映像本身基于 openjdk 映像。对于 java 来说,底层的 linux 发行版并不重要,并且 openjdk 图像非常受尊重: