Antonio La Marra
Antonio La Marra

Reputation: 7479

Repository is not signed in docker build

I have the following Dockerfile that uses the latest Ubuntu image pulled from dockerhub:

FROM ubuntu:latest  
RUN apt-get update  && apt-get install -y  g++ llvm lcov 

when I launch the docker build command, the following errors occur:

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.

I read here https://superuser.com/questions/1331936/how-can-i-get-past-a-repository-is-not-signed-message-when-attempting-to-upgr that you can pass this error using --allow-unauthenitcated or --allow-insecure-repositories but both seem to me workarounds that may compromize security of the container.

EDIT

Tried to pull ubuntu:18.04, ubuntu:19:04, ubuntu:19.10 same error with different distro name

Upvotes: 249

Views: 179709

Answers (16)

Robin maltaros
Robin maltaros

Reputation: 341

I found the solution here, it's about permissions : https://superuser.com/questions/1496529/sudo-apt-get-update-couldnt-create-temporary-file

chmod 1777 /tmp

Upvotes: 1

hrbrchenko
hrbrchenko

Reputation: 13

TLDR: try to uninstall ubuntu 22.04 from wsl and install Docker Desktop v4.23.0.

I now have two machines with this error on one of them. I've tried all of your suggestions with no luck. At some point I've noticed the only difference between software versions is version of ubuntu installed on wsl as default distro. So I uninstalled 22.04, installed 20.04 for clear test case and guess what? It works!

What a lovely day

Upvotes: 0

AV_Jeroen
AV_Jeroen

Reputation: 101

The existing answers all talk about creating more space for Docker by removing existing Docker items via docker container prune, docker image prune and docker volume prune. Alternatively it is also possible to increase the disk limit that Docker has set for it self (provided that you have enough disk space).

In Docker Desktop go to Settings > Resources and increase the "Virtual disk limit".

This has helped me since I work with several large docker images and don't want to bothered every time to prune.

Upvotes: 3

Joshua Schlichting
Joshua Schlichting

Reputation: 3450

I was able to resolve this issue by stopping all of my running containers (2, in my case).

Upvotes: 0

Amirreza Nasiri
Amirreza Nasiri

Reputation: 746

If you're using Docker Desktop, take care of the maximum disk image size you've specified in the settings. It can cause the issue if it gets full during the build (source).

enter image description here

Upvotes: 57

d1jhoni1b
d1jhoni1b

Reputation: 8065

this worked for me docker system prune -af --volumes and these other ones as well

docker image prune 
docker container prune
docker builder prune
docker volume prune

This running docker system df and see if you need free space on one of your volumes

Upvotes: 3

Antonio La Marra
Antonio La Marra

Reputation: 7479

Apparently my root partition was full (maybe I've tried too many times to download packages through apt), and running sudo apt clean solved the issue


In addition, the following commands should help clean up 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

Upvotes: 448

jcroomer
jcroomer

Reputation: 1

I added --network=host to the build command.

docker build --network=host -t REPOSITORY:TAG  ./

Upvotes: -2

Andriy Ivaneyko
Andriy Ivaneyko

Reputation: 22051

Since Docker API v1.25+ ( released: Nov 18, 2019 )

Running the command below fixed the problem for me:

docker system prune --force

The --force flag stands for noninteractive prune.

Additionally, you may want to give a try to the prune volume commands:

docker volume prune --force

Upvotes: 152

celcin
celcin

Reputation: 354

This helps me:

 docker volume prune

Upvotes: 9

Rok Jarc
Rok Jarc

Reputation: 18875

I had to run container with --security-opt seccomp:unconfined.

Upvotes: 5

Florian Bachmann
Florian Bachmann

Reputation: 572

I had this problem on one of my two machines. Doing a ls -ld /tmp I got

drwxrwxrwt 3 root root 4096 May 15 20:46 /tmp

for the working one and

drwxr-xr-t 1 root root 4096 May 26 05:44 /tmp

for the failing one. After I did chmod 1777 /tmp, it worked!!

EDIT:

So, I dived a little deeper into this problem and realized there was something fundamentally wrong. I put my problems in another question and later found the answer that solved this myself: https://stackoverflow.com/a/62088961/7387935

The key point here is that on the machine that was working correctly I had aufs as storage driver and on the faulty one it was overlay2. After I changed that, all permissions were correct.

Upvotes: 3

Emre Tapcı
Emre Tapcı

Reputation: 1908

For Raspbian, upgrade libseccomp manually on the host system by using:

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

This resolved my issue.

Original post is here.

Upvotes: 31

Magnus
Magnus

Reputation: 2058

As @Danila and @Andriy pointed out this issue can easily be fixed running:

docker image prune -f
docker container prune -f

but posting this answer, as running just one of them didn't work for me (on MacOS X) - running both however does.

Upvotes: 16

tschumann
tschumann

Reputation: 3256

I tried again later and it worked.

From 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.

Upvotes: 2

Danila Plee
Danila Plee

Reputation: 748

fixed by

docker image prune -f

looks like docker has a limit on maximum apt cache size on the host system

Upvotes: 63

Related Questions