Зеркальная система Debian httpredir ненадежна / непригодна для использования в Docker?

Укороченная версия

Debian-х httpredir.debian.org Служба зеркала вызывает сбой моих сборок Docker, потому что apt-get не может загрузить пакет или подключиться к серверу или тому подобному. Единственная ли у меня эта проблема? Проблема моя, Debian или Docker? Что я могу с этим поделать?

Длинная версия

У меня есть несколько Dockerfiles, построенных на debian:jessieи Debian по умолчанию использует httpredir.debian.org сервис по поиску лучшего зеркала при использовании apt-get и т. д. Несколько месяцев назад httpredir постоянно мучил меня, пытаясь создать образы. При запуске внутри Dockerfile, apt-get с использованием httpredir почти всегда портит один или два пакета, и вся сборка завершается ошибкой. Ошибка обычно выглядела так, будто зеркало устарело или каким-то образом повреждено. В конце концов я прекратил использовать httpredir во всех моих файлах Docker, добавив следующие строки:

# don't use httpredir.debian.org mirror as it's very unreliable
RUN echo deb http://ftp.us.debian.org/debian jessie main > /etc/apt/sources.list

Сегодня вернулся к попыткам httpredir.debian.org опять потому что ftp.us.debian.org устарел пакет, который мне нужен, и, конечно же, он не работает в Docker Hub:

Failed to fetch http://httpredir.debian.org/debian/pool/main/n/node-retry/node-retry_0.6.0-1_all.deb  Error reading from server. Remote end closed connection [IP: 128.31.0.66 80]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

Вот команда apt-get, которую я запускаю в этом случае, хотя я сталкивался с ней со многими другими:

RUN apt-get update && apt-get install -y \
  build-essential \
  chrpath \
  libssl-dev \
  libxft-dev \
  libfreetype6 \
  libfreetype6-dev \
  libfontconfig1 \
  libfontconfig1-dev \
  curl \
  bzip2 \
  nodejs \
  npm \
  git

Спасибо за любую помощь, которую вы можете предоставить.

2 ответа

У меня была такая же проблема сегодня, когда я перестраивал Dockerfile, который я не собирал некоторое время.

Добавление этой строки перед apt-get install кажется, делает трюк:

RUN apt-get clean

Есть идея здесь:

Из обсуждения этого вопроса и моего опыта многократного решения этой проблемы в течение нескольких месяцев, apt-get clean кажется, что это само по себе не помогает, но тот факт, что вы перестраиваете (то есть httpredir обычно выбирает другое зеркало) заставляет его работать. Действительно, без исключения ручной запуск перестройки или двух привел к успешной сборке.

Это, очевидно, не жизнеспособное решение, хотя. Так что нет, у меня нет решения, но у меня также недостаточно репутации, чтобы пометить его как дубликат.

Другие вопросы по тегам