Upon launching a new docker-compose setup, my Dockerfile suddenly had issues installing some packages, showing errors like:
Temporary failure resolving 'archive.ubuntu.com'
It took me some time to figure out what was happening, but this Medium post got me in the right direction. Somehow, when building, docker fails to run DNS queries.
Debugging: what causes this?
We can test the default setup by running the following command:
docker run busybox nslookup google.com
This should output something like:
connection timed out; no servers could be reached
Meaning that docker is unable to resolve domain names.
Set a different DNS server
Let’s specify a different DNS server in that command:
docker run --dns 192.168.1.1 busybox nslookup google.com
Updating the global docker configuration
When you’ve found a server that works, let’s add it to the global configuration.
Edit or create the daemon.json file:
sudo nano /etc/docker/daemon.json
My file looks like this:
{
"dns": ["192.168.1.1"]
}
Then we just need to restart the docker daemon:
sudo service docker restart
And we’re good to go!
Happy developing!
Full error log
Step 2/9 : RUN apt-get update && apt-get -y install cron httrack curl
---> Running in 9cd52019953d
Err:1 http://archive.ubuntu.com/ubuntu focal InRelease
Temporary failure resolving 'archive.ubuntu.com'
Err:2 http://security.ubuntu.com/ubuntu focal-security InRelease
Temporary failure resolving 'security.ubuntu.com'
Err:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease
Temporary failure resolving 'archive.ubuntu.com'
Err:4 http://archive.ubuntu.com/ubuntu focal-backports InRelease
Temporary failure resolving 'archive.ubuntu.com'
Reading package lists...
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/focal/InRelease Temporary failure resolving 'archive.ubuntu.com'
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/focal-updates/InRelease Temporary failure resolving 'archive.ubuntu.com'
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/focal-backports/InRelease Temporary failure resolving 'archive.ubuntu.com'
W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/focal-security/InRelease Temporary failure resolving 'security.ubuntu.com'
W: Some index files failed to download. They have been ignored, or old ones used instead.
Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package cron
E: Unable to locate package httrack
E: Unable to locate package curl
Steven says
Awesome!
docker build problem solved!!