存储库未在 docker 构建中签名
Repository is not signed in docker build
我有以下 Dockerfile,它使用从 dockerhub 中提取的最新 Ubuntu 图像:
FROM ubuntu:latest
RUN apt-get update && apt-get install -y g++ llvm lcov
当我启动 docker 构建命令时,出现以下错误:
Err:2 http://archive.ubuntu.com/ubuntu bionic InRelease
At least one invalid signature was encountered.
Err:1 http://security.ubuntu.com/ubuntu bionic-security InRelease
At least one invalid signature was encountered.
Err:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease
At least one invalid signature was encountered.
Err:4 http://archive.ubuntu.com/ubuntu bionic-backports InRelease
At least one invalid signature was encountered.
Reading package lists...
W: GPG error: http://archive.ubuntu.com/ubuntu bionic InRelease: At least one invalid signature was encountered.
E: The repository 'http://archive.ubuntu.com/ubuntu bionic InRelease' is not signed.
W: GPG error: http://security.ubuntu.com/ubuntu bionic-security InRelease: At least one invalid signature was encountered.
E: The repository 'http://security.ubuntu.com/ubuntu bionic-security InRelease' is not signed.
W: GPG error: http://archive.ubuntu.com/ubuntu bionic-updates InRelease: At least one invalid signature was encountered.
E: The repository 'http://archive.ubuntu.com/ubuntu bionic-updates InRelease' is not signed.
W: GPG error: http://archive.ubuntu.com/ubuntu bionic-backports InRelease: At least one invalid signature was encountered.
E: The repository 'http://archive.ubuntu.com/ubuntu bionic-backports InRelease' is not signed.
我在这里 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 不同发行版名称的相同错误
显然我的根分区已满(也许我尝试了太多次通过 apt 下载软件包),运行 sudo apt clean
解决了这个问题
此外,以下命令应该有助于清理 space:
docker system df # which can show disk usage and size of 'Build Cache'
docker image prune # add -f or --force to not prompt for confirmation
docker container prune # add -f or --force to not prompt for confirmation
由
修复
docker image prune -f
看起来 docker 对主机系统上的最大 apt 缓存大小有限制
我的两台机器中的一台遇到了这个问题。做了 ls -ld /tmp
我得到了
drwxrwxrwt 3 root root 4096 May 15 20:46 /tmp
工作的
drwxr-xr-t 1 root root 4096 May 26 05:44 /tmp
失败者。在我做了 chmod 1777 /tmp
之后,它成功了!!
编辑:
因此,我更深入地研究了这个问题,并意识到存在根本性的错误。我把我的问题放在另一个问题中,后来找到了自己解决这个问题的答案:
这里的关键点是,在正常工作的机器上,我有 aufs 作为存储驱动程序,而在有故障的机器上,它是 overlay2。我更改后,所有权限都是正确的。
自 Docker API v1.25+(发布日期:2019 年 11 月 18 日)
运行 下面的命令为我解决了这个问题:
docker system prune --force
--force
标志代表非交互式修剪。
此外,您可能想尝试 prun volume 命令:
docker volume prune --force
我后来又试了一次,成功了。
来自https://github.com/docker-library/php/issues/898#issuecomment-539234070:
That usually means the mirror is having issues (possibly partially out
of date; i.e. not completely synced from other mirrors) and often
clears itself up.
正如@Danila 和@Andriy 所指出的,这个问题很容易解决 运行:
docker image prune -f
docker container prune -f
但是发布了这个答案,因为 运行 只有其中一个对我不起作用(在 MacOS X 上)- 运行 但是两者都有效.
如果您使用的是 Docker 桌面版,请注意您在设置中指定的最大磁盘映像大小。如果它在构建过程中变满,可能会导致问题。
对于 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
这解决了我的问题。
原来的post是here。
我不得不 运行 容器 --security-opt seccomp:unconfined
。
这对我有帮助:
docker volume prune
我在构建命令中添加了 --network=host
。
docker build --network=host -t REPOSITORY:TAG ./
这对我有用
docker system prune -af --volumes
还有这些其他的
docker image prune
docker container prune
docker builder prune
docker volume prune
这 运行 docker system df
并查看您是否需要免费 space 您的其中一卷
我有以下 Dockerfile,它使用从 dockerhub 中提取的最新 Ubuntu 图像:
FROM ubuntu:latest
RUN apt-get update && apt-get install -y g++ llvm lcov
当我启动 docker 构建命令时,出现以下错误:
Err:2 http://archive.ubuntu.com/ubuntu bionic InRelease At least one invalid signature was encountered.
Err:1 http://security.ubuntu.com/ubuntu bionic-security InRelease At least one invalid signature was encountered.
Err:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease At least one invalid signature was encountered.
Err:4 http://archive.ubuntu.com/ubuntu bionic-backports InRelease At least one invalid signature was encountered.
Reading package lists...
W: GPG error: http://archive.ubuntu.com/ubuntu bionic InRelease: At least one invalid signature was encountered. E: The repository 'http://archive.ubuntu.com/ubuntu bionic InRelease' is not signed.
W: GPG error: http://security.ubuntu.com/ubuntu bionic-security InRelease: At least one invalid signature was encountered. E: The repository 'http://security.ubuntu.com/ubuntu bionic-security InRelease' is not signed.
W: GPG error: http://archive.ubuntu.com/ubuntu bionic-updates InRelease: At least one invalid signature was encountered. E: The repository 'http://archive.ubuntu.com/ubuntu bionic-updates InRelease' is not signed.
W: GPG error: http://archive.ubuntu.com/ubuntu bionic-backports InRelease: At least one invalid signature was encountered. E: The repository 'http://archive.ubuntu.com/ubuntu bionic-backports InRelease' is not signed.
我在这里 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 不同发行版名称的相同错误
显然我的根分区已满(也许我尝试了太多次通过 apt 下载软件包),运行 sudo apt clean
解决了这个问题
此外,以下命令应该有助于清理 space:
docker system df # which can show disk usage and size of 'Build Cache'
docker image prune # add -f or --force to not prompt for confirmation
docker container prune # add -f or --force to not prompt for confirmation
由
修复docker image prune -f
看起来 docker 对主机系统上的最大 apt 缓存大小有限制
我的两台机器中的一台遇到了这个问题。做了 ls -ld /tmp
我得到了
drwxrwxrwt 3 root root 4096 May 15 20:46 /tmp
工作的
drwxr-xr-t 1 root root 4096 May 26 05:44 /tmp
失败者。在我做了 chmod 1777 /tmp
之后,它成功了!!
编辑:
因此,我更深入地研究了这个问题,并意识到存在根本性的错误。我把我的问题放在另一个问题中,后来找到了自己解决这个问题的答案:
这里的关键点是,在正常工作的机器上,我有 aufs 作为存储驱动程序,而在有故障的机器上,它是 overlay2。我更改后,所有权限都是正确的。
自 Docker API v1.25+(发布日期:2019 年 11 月 18 日)
运行 下面的命令为我解决了这个问题:
docker system prune --force
--force
标志代表非交互式修剪。
此外,您可能想尝试 prun volume 命令:
docker volume prune --force
我后来又试了一次,成功了。
来自https://github.com/docker-library/php/issues/898#issuecomment-539234070:
That usually means the mirror is having issues (possibly partially out of date; i.e. not completely synced from other mirrors) and often clears itself up.
正如@Danila 和@Andriy 所指出的,这个问题很容易解决 运行:
docker image prune -f
docker container prune -f
但是发布了这个答案,因为 运行 只有其中一个对我不起作用(在 MacOS X 上)- 运行 但是两者都有效.
如果您使用的是 Docker 桌面版,请注意您在设置中指定的最大磁盘映像大小。如果它在构建过程中变满,可能会导致问题。
对于 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
这解决了我的问题。
原来的post是here。
我不得不 运行 容器 --security-opt seccomp:unconfined
。
这对我有帮助:
docker volume prune
我在构建命令中添加了 --network=host
。
docker build --network=host -t REPOSITORY:TAG ./
这对我有用
docker system prune -af --volumes
还有这些其他的
docker image prune
docker container prune
docker builder prune
docker volume prune
这 运行 docker system df
并查看您是否需要免费 space 您的其中一卷