Dockerfile fail to verify Postgres apt signature

Viewed 633

On running docker-compose up I stuck on Dockerfile that throws error that it cannot verify signature.

Next RUN line throws the error

...

RUN apt-key adv --fetch-keys https://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc \
    && echo "deb http://apt.postgresql.org/pub/repos/apt bionic-pgdg main" >> /etc/apt/sources.list \
    && apt-get update \
    && apt-get -y install libpq-dev=13.* \
    && apt-get -y install python3.8-dev
...

which throws next error

 > [4/6] RUN apt-key adv --fetch-keys https://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc     && echo "deb http://apt.postgresql.org/pub/repos/apt bionic-pgdg main" >> /etc/apt/sources.list     && apt-get update     && apt-get -y install libpq-dev=13.*     && apt-get -y install python3.8-dev:
#7 0.343 Warning: apt-key output should not be parsed (stdout is not a terminal)
#7 0.372 Executing: /tmp/apt-key-gpghome.9rh9S8guqQ/gpg.1.sh --fetch-keys https://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc
#7 0.376 gpg: requesting key from 'https://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc'
#7 0.588 gpg: WARNING: unable to fetch URI https://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc: General error
#7 0.975 Hit:1 http://archive.ubuntu.com/ubuntu focal InRelease
#7 1.008 Hit:2 http://archive.ubuntu.com/ubuntu focal-updates InRelease
#7 1.011 Get:3 http://apt.postgresql.org/pub/repos/apt bionic-pgdg InRelease [110 kB]
#7 1.052 Hit:4 http://archive.ubuntu.com/ubuntu focal-backports InRelease
#7 1.169 Hit:5 http://security.ubuntu.com/ubuntu focal-security InRelease
#7 1.472 Err:3 http://apt.postgresql.org/pub/repos/apt bionic-pgdg InRelease
#7 1.472   The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 7FCC7D46ACCC4CF8
#7 1.594 Reading package lists...
#7 2.546 W: GPG error: http://apt.postgresql.org/pub/repos/apt bionic-pgdg InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 7FCC7D46ACCC4CF8
#7 2.546 E: The repository 'http://apt.postgresql.org/pub/repos/apt bionic-pgdg InRelease' is not signed.

Thanks

2 Answers

The apt has a set of trusted keys and sometimes we only need to add the ones that are missing.

You can add the missing key just by running the following command (before the 'apt-get update'):

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7FCC7D46ACCC4CF8

Greetings.

According to the Postgres wiki page for apt the correct key download URL is https://www.postgresql.org/media/keys/ACCC4CF8.asc which does not match the URL in your RUN command.

Related