Служба Dockerfile apt-get install — 503 недоступна

#docker #ubuntu #dockerfile #apt

#docker #ubuntu #dockerfile #apt

Вопрос:

Есть ли у кого-нибудь надежное решение для предотвращения периодических ошибок 503 service unavailable от apt-get в Dockerfile?

Я пытался указывать на разные зеркала в /etc/apt/services.list файле, но иногда это вызывает другие проблемы (например, предупреждения / ошибки, связанные с неподписанными репозиториями).

Я хотел бы использовать APT::Acquire::Retries (или это просто Acquire::Retries ?) Параметр либо в моем apt.conf файле, либо в виде отдельного файла в /etc/apt/apt.conf.d каталоге, но независимо от того, как я его пишу (например, APT::Acquire::Retries "20"; ), похоже, это не помогает. Объяснение справочной страницы здесь. Мои сборки Dockerfile по-прежнему завершаются неудачно после 503, и я не вижу никаких признаков того, что он использует несколько попыток.

Вот фрагмент сообщения об ошибке, если это поможет. Обратите внимание, что несколько строк, которые он успешно извлек с того же сервера, на несколько строк выше ошибки. Кроме того, если я перейду на страницу FTP сервера в своем браузере, я могу загрузить тот же пакет, который завершает сборку Dockerfile.

Выходной фрагмент:

 Get:10 http://archive.ubuntu.com/ubuntu xenial/main amd64 xfonts-encodings all 1:1.0.4-2 [573 kB]
Get:11 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 xfonts-utils amd64 1:7.7 3ubuntu0.16.04.2 [74.6 kB]
Get:12 http://archive.ubuntu.com/ubuntu xenial/main amd64 xfonts-base all 1:1.0.4 nmu1 [5914 kB]
Err:13 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 xserver-common all 2:1.18.4-0ubuntu0.8
  503  Service Unavailable [IP: 91.189.91.23 80]
Get:14 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 xvfb amd64 2:1.18.4-0ubuntu0.8 [777 kB]
[91mE: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/x/xorg-server/xserver-common_1.18.4-0ubuntu0.8_all.deb  503  Service Unavailable [IP: 91.189.91.23 80]
  

ps. Это происходит не просто с xvfb — это просто тот, который я скопировал здесь.

Мысли? Спасибо!

Ответ №1:

Я обнаружил, что между APT::Acquire::Retries и много путаницы Acquire::Retries , но последнее работает для меня. т.е.

 echo 'Acquire::Retries "20";' > /etc/apt/apt.conf.d/80-retries;