it-swarm.com.de

Wie behebe ich einen Hash-Summen-Fehler bei der Aktualisierung eines neuen Docker-Images?

Ausführen von docker build . für die folgende Docker-Datei

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

Ich erhalte den Fehler 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.

Ich habe dann versucht, jede Lösung in dieser Frage zu meiner Docking-Datei hinzuzufügen: Probleme beim Herunterladen der Paketliste aufgrund eines "Hash sum mismatch" -Fehlers

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

aber ich bekomme den gleichen fehler.

Was kann ich sonst noch tun?

3
Richard

Ich glaube, ich hätte Ihr Problem herausgefunden:

Möglicherweise fehlen Abhängigkeiten für Docker, oder Docker ist nicht ordnungsgemäß installiert.

Hier ist die vollständige Anleitung für die Docker-Installation unter Ubunt .

Besonders dieser Teil könnte fehlen.

Ich würde Ihnen raten, Docker mit diesen offiziellen Anweisungen neu zu installieren.

Sollte das Problem weiterhin bestehen, liegt möglicherweise ein Problem mit der Netzwerkverbindung Ihres VM oder Ihres Host-Computers vor.

Immerhin scheint mir Ihr Dockerfile korrekt zu sein, also sollte dies nicht die Ursache sein.

1
FatalMerlin

Die gewählte Lösung hat bei mir nicht funktioniert. Und mir ist aufgefallen, dass dies nicht immer der Fall ist - das heißt, wenn ich ein oder zwei Tage warte, erhalte ich keinen Fehler. Ich vermute, es hat mehr mit den Ubuntu-Repositorys zu tun als mit der von uns verwendeten Docker-Version (wie von Robie ).

Meine Lösung besteht darin, einen der offiziellen Spiegel anstelle des Standard-Ubuntu-Repos zu verwenden. Ersetzen Sie xenial durch Ihre Ubuntu-Version. Möglicherweise benötigen Sie eine zusätzliche deb-src-Zeile für alle oder keine der Zeilen, je nachdem, wo Sie die Nichtübereinstimmung erhalten. Ich habe festgestellt, dass die Spiegel langsamer sind als die Standardzeile.

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