web-dev-qa-db-fra.com

Comment corriger l'erreur d'incompatibilité de somme de hachage sur la mise à jour d'une image fraîche dans le menu fixe?

Lancer docker build . contre le fichier de dock suivant

FROM ubuntu:16.04
MAINTAINER [email protected]
RUN apt-get clean \
    && rm -rf /var/lib/apt/lists/* \
    && apt-get update -y 

J'ai l'erreur E: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/xenial-updates/main/source/by-hash/SHA256/50ccff6c903e98e2e52c1ab6dae4a85d23a84369325fd971c4bfc3752e6a7ede Hash Sum mismatch E: Some index files failed to download. They have been ignored, or old ones used instead.

J'ai ensuite essayé d'ajouter chaque solution de cette question à mon fichier de docker: Problème de téléchargement de la liste des paquets en raison d'une erreur "Hash sum mismatch"

FROM ubuntu:16.04
MAINTAINER [email protected]
RUN touch /etc/apt/apt.conf.d/99fixbadproxy \
    && echo "Acquire::http::Pipeline-Depth 0;" >> /etc/apt/apt.conf.d/99fixbadproxy \
    && echo "Acquire::http::No-Cache true;" >> /etc/apt/apt.conf.d/99fixbadproxy \
    && echo "Acquire::BrokenProxy true;" >> /etc/apt/apt.conf.d/99fixbadproxy \
    && apt-get update -o Acquire::CompressionTypes::Order::=gz \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/* \
    && apt-get update -y

mais je reçois la même erreur.

Que puis-je faire d'autre?

3
Richard

Je pense que j'aurais peut-être compris votre problème:

Vous avez peut-être des dépendances manquantes pour Docker ou le menu fixe n'est pas installé correctement.

Voici les instructions complètes pour Installation de Docker sur Ubunt .

Surtout cette partie peut-être manquant.

Je vous conseillerais de réinstaller docker avec ces instructions officielles.

Si le problème persiste, il se peut que la connexion réseau de votre VM ou de votre ordinateur hôte pose problème.

Après tout, votre Dockerfile me semble correct, cela ne devrait donc pas en être la cause.

1
FatalMerlin

La solution choisie n'a pas fonctionné pour moi. Et j'ai remarqué que ce n'est pas toujours le cas - c'est-à-dire que si j'attends un jour ou deux, je ne reçois pas l'erreur. Je suppose que cela a plus à voir avec les dépôts ubuntu que la version de docker que nous utilisons (comme expliqué par Robie ).

Ma solution consiste à utiliser l'un des miroirs officiels à la place du dépôt par défaut d'ubuntu. Remplacez xenial par votre version d'ubuntu. Vous aurez peut-être besoin d'une ligne supplémentaire deb-src pour toutes ou aucune des lignes en fonction de l'endroit où vous rencontrez l'incompatibilité. J'ai remarqué que les miroirs sont plus lents que ceux par défaut.

RUN rm -rf /etc/apt/sources.list
RUN echo "deb mirror://mirrors.ubuntu.com/mirrors.txt xenial main restricted universe multiverse" >> /etc/apt/sources.list
RUN echo "deb mirror://mirrors.ubuntu.com/mirrors.txt xenial-updates main restricted universe multiverse" >> /etc/apt/sources.list
RUN echo "deb-src mirror://mirrors.ubuntu.com/mirrors.txt xenial-updates main restricted universe multiverse" >> /etc/apt/sources.list
RUN echo "deb mirror://mirrors.ubuntu.com/mirrors.txt xenial-backports main restricted universe multiverse" >> /etc/apt/sources.list
RUN echo "deb mirror://mirrors.ubuntu.com/mirrors.txt xenial-security main restricted universe multiverse" >> /etc/apt/sources.list
1
Srikanth