I’m trying to build a PHP 5.3/Apache for local use using a Dockerfile that starts:
FROM php:5.3-apache
RUN apt-get update &&
apt-get install -y
libfreetype6-dev
libjpeg62-turbo-dev
libmcrypt-dev
libpng-dev
But when "Reading package lists" I get:
W: GPG error: http://security.debian.org jessie/updates InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 9D6D8F6BC857C906 NO_PUBKEY AA8E81B4331F7F50
W: GPG error: http://http.debian.net jessie-updates InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 7638D0442B90D010
W: GPG error: http://http.debian.net jessie Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 7638D0442B90D010
After reading this page I tried adding this after the first line:
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys AA8E81B4331F7F50 &&
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7638D0442B90D010
But get this error:
W: There is no public key available for the following key IDs:
9D6D8F6BC857C906
W: Failed to fetch http://http.debian.net/debian/dists/jessie/Release.gpg Connection failed [IP: 130.89.148.77 80]
Knowing next to nothing about Ubuntu vs Debian I tried the same but with keyring.debian.org
in place of keyserver.ubuntu.com
and got:
gpgkeys: key AA8E81B4331F7F50 can't be retrieved
gpg: no valid OpenPGP data found.
gpg: Total number processed: 0
From another question I tried this:
RUN apt-get update &&
apt-get install -y --no-install-recommends
apt-transport-https
ca-certificates
RUN apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys AA8E81B4331F7F50
RUN apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 7638D0442B90D010
But get the same GPG Error as originally.
I’m now stumped as to how to proceed. (I know PHP 5.3 is very out of date but I can’t change that unfortunately.)
4
Answers
After several more attempts and errors I found that just doing this, without the preceding install of
apt-transport-https ca-certificates
seems to do the job:I do get this error but it doesn't appear to affect anything, and installation continues afterwards:
From http://forums.debian.net/viewtopic.php?f=10&t=141778, one solution is.
The Dockerfile could look like this:
If you are on
Debian
/Debian(Container)
, to fix your problem:Just try the below code:
Having run into the same issues and finding that none of the above solutions worked, I considered the fact that I was calling upon an image that was a slightly older version than current (openjdk:10-sid) and thought that being a dead-end release, there would be no keys to match to for updates.
So, I just commented out:
RUN apt-get update
and let the other apt-get installs happen. The build finally succeeded. I wouldn’t do this as a rule, but it seems reasonable for older images.