Debian httpredir镜像系统在Docker中不可靠/不可用?

时间:2016-03-10 17:42:55

标签: docker debian apt-get

短版

Debian的httpredir.debian.org镜像服务导致我的Docker版本经常失败,因为apt-get无法下载软件包或连接到服务器或类似的东西。我是唯一一个遇到这个问题的人吗?问题是我的,Debian的还是Docker的?我有什么可以做的吗?

长版

我在debian:jessie上构建了几个Dockerfile,Debian默认使用httpredir.debian.org服务来查找使用apt-get等时的最佳镜像。几个月前,httpredir给了我持续的悲痛在尝试构建图像时。当在Dockerfile中运行时,使用httpredir的apt-get几乎总是会在一两个包上搞乱,整个构建都会失败。错误通常看起来像镜子已经过时或以某种方式腐败。我最终通过添加以下行停止在我的所有Dockerfiles中使用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

感谢您提供的任何帮助。

2 个答案:

答案 0 :(得分:5)

我今天遇到了同样的问题,当重建我暂时没有构建的Dockerfile时。

apt-get install之前添加此行似乎可以解决问题:

RUN apt-get clean

在这里有了想法:

答案 1 :(得分:3)

关于this问题的讨论,以及我在几个月内反复处理这个问题的经验,def toProvider(dbIn: PostgresDriver.backend.DatabaseDef) = { new DatabaseConfig[JdbcProfile] { override def db: JdbcProfile#Backend#Database = dbIn override def config: Config = None.orNull // unused override def driverIsObject: Boolean = true override def driverName: String = "org.postgresql.Driver" override val driver: JdbcProfile = ExtendedPostgresDriver } new DatabaseConfigProvider { // Cast is necessary, otherwise cannot get to compile override def get[P <: BasicProfile]: DatabaseConfig[P] = config.asInstanceOf[DatabaseConfig[P]] } } 似乎本身没有帮助,但事实上你是这样的。重建(即httpredir通常选择不同的镜像)让它工作。确实毫无例外地手动触发重建或两次重建导致成功构建。

但是,这显然不是一个可行的解决方案。所以,不,我没有解决方案,但我也没有足够的声誉将此标记为副本。