#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;