35
votes

Erreur de GPG dans Ubuntu 21.04 après la deuxième mise à jour APT-Get pendant Docker Build

Obtenir une erreur lors de la création du fichier docker suivant

E: The repository 'http://security.ubuntu.com/ubuntu hirsute-security InRelease' is not signed.
W: GPG error: http://archive.ubuntu.com/ubuntu hirsute InRelease: gpgv, gpgv2 or gpgv1 required for verification, but neither seems installed
E: The repository 'http://archive.ubuntu.com/ubuntu hirsute InRelease' is not signed.
W: GPG error: http://archive.ubuntu.com/ubuntu hirsute-updates InRelease: gpgv, gpgv2 or gpgv1 required for verification, but neither seems installed
E: The repository 'http://archive.ubuntu.com/ubuntu hirsute-updates InRelease' is not signed.
W: GPG error: http://archive.ubuntu.com/ubuntu hirsute-backports InRelease: gpgv, gpgv2 or gpgv1 required for verification, but neither seems installed
E: The repository 'http://archive.ubuntu.com/ubuntu hirsute-backports InRelease' is not signed.

Tout type d'aide serait apprécié.


2 commentaires

Confirmé - J'obtiens la même erreur avec ce dockerfile, donc ce n'est pas spécifique pour vous.


Je ne sais pas si le bug est réellement corrigé. J'ai eu le même problème avec une image Ubuntu 21.04 téléchargée il y a quelques semaines. Ce soir, j'ai essayé d'essuyer pour que l'image Ubuntu redémarrée et le problème a disparu.


6 Réponses :


4
votes

J'ai exécuté votre fichier docker et j'ai la même erreur. Jouer avec diverses façons de désactiver la vérification n'a également produit aucun bon résultat. Il n'a pas non plus supprimé les contraintes de version et simplement installer les dernières versions des outils. La seule solution que j'ai pu trouver était de rétrograder Ubuntu à 20.04, mais il n'y a pas de version 3.6.3-5 de Maven pour cette version du système d'exploit Le travail est très différent de votre image souhaitée:

from maven:3.6.3-jdk-11
run apt update && apt install -y curl unzip && apt clean

Notez également comment j'utilise apt plutôt que apt-get et Je ne fais qu'une seule exécution (ce qui rend une image plus simple en n'ayant qu'une seule couche) et un seul APT Update et en chaîne les choses que je souhaite installer dans un seul APT INSTALLATION Code> plutôt que séparément. C'est juste plus rapide et plus facile.

Cependant, si vous voulez une boîte de construction Maven, vous seriez peut-être mieux conseillé en utilisant l'une des images maven prédéfinies de Docker Hub qui sont elles-mêmes basées sur des images OpenJDK. Pour Java, la distribution Linux sous-jacente est rarement importante et les images OpenJDK sont assez bien respectées:

FROM ubuntu:20.04

RUN apt update && \
    apt install --no-install-recommends -y curl=7.\* unzip=6.\* maven=3.6.3-1 && \
    apt clean && \
    rm -rf /var/lib/apt/lists/* && \
    mkdir -p /usr/share/man/man1


2 commentaires

Merci, mais le problème avec Ubuntu 20.04 est que l'analyse de sécurité échoue. (J'utilise l'analyse Clair pour cela). À l'heure actuelle, la seule solution était d'utiliser Ubuntu version 20.10.


Le problème avec l'utilisation de distros plus récentes pour votre raison déclarée est que les vulns n'ont souvent pas encore rattrapé leur retard, pas qu'ils n'existent pas. Je pense que 20.10 n'a été libéré qu'il y a 4 mois, donc c'est relativement non testé, ce qui pourrait entraîner un faux négatif. Mieux vaut parfois pour patcher et justifier - toutes les vulnes ne sont pas valables dans un contexte donné



22
votes

C'est un bug dans l'interaction Docker / SecComp / Glibc: https: //bugs.launchpad.net/ubuntu/+source/glibc/+bug/1916485


7 commentaires

Corrigé avec runc 1.0.0-rc93 . Vous pouvez trouver votre version avec docker version .


À partir de la 21.04 notes de libération : «En raison des changements de GLIBC 2.33 Ubuntu 21.04 Les images de conteneurs nécessitent des temps de conteneur mis à jour. Tous les temps d'exécution de conteneurs largement utilisés expédiés dans les versions prises en charge d'Ubuntu ont été mises à jour via la procédure de mise à jour stable de la version stable. Les hôtes de conteneurs exécutant d'autres systèmes d'exploitation peuvent avoir besoin de mises à jour manuelles. »


J'ai trouvé que je devais désinstaller complètement Docker et réinstaller pour que cela travaille - en suivant les instructions dans askubuntu.com/questions/1230248/docker-problems-in-ubuntu-20‌ -04 - Lorsque vous utilisez Ubuntu 20.04 comme hôte.


Aucun moyen d'utiliser ce correctif sur dockerhub, non?


Remarque: Minikube Still (à partir de la v1.19.0) a runc 1.0.0-rc92 et est toujours effectué par ce problème (dans mon cas, j'utilisais Skaffold qui fait la construction dans Docker de Minikube).


@Lewis qui a fonctionné pour moi. Vous pourriez envisager de publier cela comme une réponse à cette question.


J'utilise des conteneurs basés sur des bras. La mise à niveau vers la version 1.0.1 de Runc a résolu ce problème pour moi pour le conteneur ARM64 mais pas pour le conteneur ARM32. Voir bugs.launchpad.net/ubuntu/+source/ libseccomp / + bug / 1916485 /…



3
votes

Ce bogue ne se produit pas si vous utilisez une version plus récente de Docker (testée avec 20.10). Si vous utilisez une ancienne version de Docker, je recommande de passer à une version précédente de l'image Ubuntu. J'ai testé Ubuntu: 20.10 avec Docker 19.03 et cela a très bien fonctionné. Ceci est discuté ici: https://bugs.launchpad.net/cloud-images/ + bug / 1928218


4 commentaires

thx, mise à niveau de docker 19.03.5 à 20.10.6 l'a corrigé pour moi =)


Il ne résout pas le problème pour moi (sur Docker 20.10.0 Build 7287ab3) sur Macintosh.


La mise à niveau vers 20.10.8 n'a pas résolu mon problème!


Cela a fonctionné pour moi ..



-1
votes

J'ai rencontré ce problème lorsque j'exécutais l'image Ubuntu 21.04 sous Docker sans racine, mais la commande apt-get update a bien fonctionné sous le système docker (invoqué via sudo ). Étant donné que mon besoin était juste pour un test manuel d'un script de configuration d'environnement, j'ai simplement couru sous le système Docker mais, selon votre application, cela pourrait ne pas être sécurisé.


0 commentaires

-2
votes

substituer apt-get avec apt a fonctionné pour moi.


0 commentaires

0
votes

Mettez à jour la version docker vers les dernières personnes pour résoudre ce problème.

Pour les utilisateurs d'Ubuntu, suivez ces étapes:

https://docs.docker.com/engine/install/


0 commentaires