Como corrigir erro de incompatibilidade de soma de hash na atualização de imagem do Docker?

1

Executando docker build . no seguinte dockerfile

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

Eu recebo o erro 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.

Eu tentei adicionar todas as soluções dessa pergunta ao meu dockerfile: Problemas ao baixar a lista de pacotes devido a um "Hash sum erro de correspondência "

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

mas recebo o mesmo erro.

O que mais posso fazer?

    
por Richard 17.01.2017 / 14:17

2 respostas

1

Acho que imaginei o seu problema:

Você pode ter dependências ausentes para o Docker ou a janela de encaixe não está instalada corretamente.

Aqui está a instrução completa para a instalação do Docker no Ubuntu .

Especialmente esta parte pode estar faltando.

Aconselho-o a reinstalar o Docker com estas instruções oficiais.

Se o problema persistir, pode haver um problema com a conexão de rede de sua VM ou sua máquina host.

Depois de todo o seu Dockerfile parecer correto para mim, então esta não deve ser a causa.

    
por FatalMerlin 19.01.2017 / 10:52
1

A solução escolhida não funcionou para mim. E percebi que nem sempre é esse o caso - ou seja, se eu esperar um dia ou dois, não recebo o erro. Eu suspeito que tem mais a ver com os repositórios do Ubuntu do que com a versão do docker que usamos (como explicado em Robie ).

Minha solução é usar um dos espelhos oficiais em vez do repositório padrão do ubuntu. Substitua o xenial pela sua versão do Ubuntu. Você pode precisar de uma linha extra src para todas ou nenhuma das linhas, dependendo de onde você está recebendo a incompatibilidade. Eu notei que os espelhos são mais lentos em comparação com o padrão.

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
    
por Srikanth 18.03.2018 / 11:21