【发布时间】:2016-06-25 17:10:45
【问题描述】:
短版
Debian 的 httpredir.debian.org 镜像服务导致我的 Docker 构建经常失败,因为 apt-get 无法下载软件包或连接到服务器或类似的东西。我是唯一一个有这个问题的人吗?问题是我的、Debian 的还是 Docker 的?有什么我可以做的吗?
加长版
我有几个基于 debian:jessie 构建的 Dockerfile,Debian 默认使用 httpredir.debian.org 服务在使用 apt-get 等时找到最佳镜像。几个月前,httpredir 在尝试构建时让我一直很痛苦图片。在 Dockerfile 中运行时,使用 httpredir 的 apt-get 几乎总是会弄乱一两个包,并且整个构建都会失败。该错误通常看起来像是镜像已过时或以某种方式损坏。通过添加以下几行,我最终在所有 Dockerfile 中停止使用 httpredir:
# 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
感谢您提供的任何帮助。
【问题讨论】:
-
@LionelChan 你可能是对的。该问题的公认答案没有帮助,但我必须试一试。
-
没有不好的感觉。我只是将它链接回问题,作为下面提到的答案之一:)