在Docker中,Debian httpredir镜像系统不可靠/不可用?
简洁版本
Debian的httpredir.debian.org
镜像服务会导致我的Docker构build失败,因为apt-get无法下载包或连接到服务器或类似的东西。 我是唯一有这个问题的人吗? 问题是我的,Debian的还是Docker的? 有什么我可以做的吗?
长版本
我有几个build立在debian:jessie
上的Dockerfiles debian:jessie
,Debian默认使用httpredir.debian.org
服务来find使用apt-get时最好的镜像。几个月前,httpredir在试图构build图像时给了我不断的悲伤。 当在Dockerfile中运行时,使用httpredir的apt-get几乎总是会在一两个软件包上搞砸,整个构build会失败。 通常看起来像一面镜子的错误在某种程度上已经过时或腐败了。 我最终通过添加以下几行来停止在我所有的Docker文件中使用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
感谢您的任何帮助,您可以提供。
我今天刚刚遇到同样的问题,重buildDockerfile的时候我还没有build立好。
在apt-get install
之前添加这一行似乎有诀窍:
RUN apt-get clean
有这个想法在这里:
从关于这个问题的讨论以及我经历了几个月的处理这个问题的经验来看, apt-get clean
似乎并不在其中,而且你正在重build的事实(即httpredir通常会select一个不同的镜像)得到它的工作。 事实上,无一例外地手动触发重build或两个导致成功的构build。
但这显然不是一个可行的解决scheme。 所以,不,我没有解决scheme,但我也没有足够的声誉来标记这是重复的。