存储库未在 docker build 中签名

Ant*_*rra 90 ubuntu apt docker

我有以下 Dockerfile,它使用从 dockerhub 中提取的最新 Ubuntu 映像:

FROM ubuntu:latest  
RUN apt-get update  && apt-get install -y  g++ llvm lcov 
Run Code Online (Sandbox Code Playgroud)

当我启动 docker build 命令时,出现以下错误:

错误:2 http://archive.ubuntu.com/ubuntu bionic InRelease 至少遇到一个无效签名。

错误:1 http://security.ubuntu.com/ubuntu bionic-security InRelease 至少遇到一个无效签名。

错误:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease 至少遇到一个无效签名。

错误:4 http://archive.ubuntu.com/ubuntu bionic-backports InRelease 至少遇到一个无效签名。

正在阅读包裹清单...

W:GPG 错误:http : //archive.ubuntu.com/ubuntu bionic InRelease:至少遇到一个无效签名。E:存储库“ http://archive.ubuntu.com/ubuntu bionic InRelease”未签名。

W:GPG 错误:http : //security.ubuntu.com/ubuntu bionic-security InRelease:至少遇到一个无效签名。E:存储库“ http://security.ubuntu.com/ubuntu bionic-security InRelease”未签名。

W:GPG 错误:http : //archive.ubuntu.com/ubuntu bionic-updates InRelease:至少遇到一个无效签名。E:存储库“ http://archive.ubuntu.com/ubuntu bionic-updates InRelease”未签名。

W:GPG 错误:http : //archive.ubuntu.com/ubuntu bionic-backports InRelease:至少遇到一个无效签名。E:存储库“ http://archive.ubuntu.com/ubuntu bionic-backports InRelease”未签名。

我在这里读到https://superuser.com/questions/1331936/how-can-i-get-past-a-repository-is-not-signed-message-when-attempting-to-upgr你可以通过这个错误使用 --allow-unauthenitcated 或 --allow-insecure-repositories 但在我看来两者都是可能危及容器安全性的解决方法。

编辑

试图拉 ubuntu:18.04, ubuntu:19:04, ubuntu:19.10 相同的错误,但发行版名称不同

Ant*_*rra 152

显然我的根分区已满(也许我已经尝试了太多次无法通过 apt 下载软件包),并且运行sudo apt clean解决了问题

  • 使用“docker image prune”和“docker container prune”为我解决了这个问题。 (93认同)
  • 我尝试了上述所有方法,但在破坏 docker 构建缓存后我的问题得到了解决。首先,我通过“docker system df”查看了我的 docker 使用情况。这告诉我我的构建缓存是 50+GB。然后我使用“docker builder prune”对其进行了核攻击。 (20认同)
  • 有人可以解释为什么会发生这种失败吗?这挑战了我对 docker 的理解:运行之间似乎保留了一些状态,但这些状态并不使运行具有确定性。 (3认同)
  • `docker image prune` 在我的磁盘上保存了 52GB 并让我的构建再次运行,谢谢 Antonio 和 Erik! (2认同)
  • 太棒了......这就是解决方案,我盯着所有东西,但没有意识到我的根分区空间不足。 (2认同)
  • 我在“docker buildx”构建中遇到了这个;`docker buildx prune` 整理了一些东西... (2认同)

And*_*yko 55

自 Docker api v1.25+(发布时间:2019 年 11 月 18 日)

在下面运行命令为我解决了问题:

docker system prune --force
Run Code Online (Sandbox Code Playgroud)

--force标志代表非交互式修剪。

  • 这些可以合并为一个:`docker system prune --all --force --volumes` (2认同)

小智 40

由固定

docker image prune -f
Run Code Online (Sandbox Code Playgroud)

看起来docker对主机系统上的最大apt缓存大小有限制

  • 我还需要运行 docker volume rm $(docker volume ls -q) 。 (3认同)

Ami*_*iri 19

如果您使用的是 Docker Desktop,请注意您在设置中指定的最大磁盘映像大小。如果它在构建期间变满,它可能会导致问题。

在此处输入图片说明

  • 谢谢——这(增加磁盘映像大小资源)和修剪我的系统在 Docker/Mac 上为我解决了这个问题。 (2认同)
  • 谢谢!为我工作。奇怪的是 apt-get 对这个问题并不清楚。 (2认同)
  • 增加磁盘映像大小对我有帮助,谢谢:) (2认同)

Mag*_*nus 9

正如@Danila 和@Andriy 指出的,这个问题可以很容易地在运行时修复:

docker image prune -f
docker container prune -f
Run Code Online (Sandbox Code Playgroud)

但是发布这个答案,因为只运行其中一个对我不起作用(在MacOS X 上) - 但是同时运行两者都可以。


Emr*_*pcı 9

对于 Raspbian,请libseccomp使用以下命令在主机系统上手动升级:

curl http://ftp.us.debian.org/debian/pool/main/libs/libseccomp/libseccomp2_2.5.1-1_armhf.deb --output libseccomp2_2.5.1-1_armhf.deb
sudo dpkg -i libseccomp2_2.5.1-1_armhf.deb
Run Code Online (Sandbox Code Playgroud)

这解决了我的问题。

原帖在这里


cel*_*cin 8

这对我有帮助:

 docker volume prune
Run Code Online (Sandbox Code Playgroud)