我在 Bash 中运行以下命令:
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get install -y build-essential git libncurses5-dev openssl \
libssl-dev fop xsltproc unixodbc-dev curl
它运行了,但是中途失败了:
Get:96 http://security.debian.org/ jessie/updates/main linux-libc-dev amd64 3.16.7-ckt9-3~deb8u1 [991 kB]
Get:97 http://security.debian.org/ jessie/updates/main curl amd64 7.38.0-4+deb8u2 [200 kB]
Get:98 http://security.debian.org/ jessie/updates/main openjdk-7-jre amd64 7u79-2.5.5-1~deb8u1 [176 kB]
Get:99 http://http.debian.net/debian/ jessie/main libgtk2.0-0 amd64 2.24.25-3 [2301 kB]
Err http://http.debian.net/debian/ jessie/main dpkg-dev all 1.17.25
Error reading from server. Remote end closed connection [IP: 176.9.184.93 80]
Get:100 http://http.debian.net/debian/ jessie/main libatk-wrapper-java all 0.30.5-1 [30.3 kB]
Get:101 http://http.debian.net/debian/ jessie/main libatk-wrapper-java-jni amd64 0.30.5-1 [24.8 kB]
Get:102 http://http.debian.net/debian/ jessie/main libatomic1 amd64 4.9.2-10 [8992 B]
Get:103 http://http.debian.net/debian/ jessie/main libavahi-glib1 amd64 0.6.31-5 [36.4 kB]
因此整个操作失败并出现错误
E: Failed to fetch http://http.debian.net/debian/pool/main/d/dpkg/dpkg-dev_1.17.25_all.deb Error reading from server. Remote end closed connection [IP: 176.9.184.93 80]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
我正在将其作为 Docker 构建的一部分运行。我的 Dockerfile 内容如下
FROM debian:jessie
RUN DEBIAN_FRONTEND=noninteractive \
apt-get update -qq \
&& apt-get install -y \
build-essential \
git \
libncurses5-dev \
openssl \
libssl-dev \
fop \
xsltproc \
unixodbc-dev \
curl
我正在跑步docker build -t my-base:latest .
在我没有做任何更改的情况下,该apt-get
命令有时会成功,有时会失败。它似乎当我在本地开发机器上运行它时总是成功,但在 EC2 机器上运行它时经常失败(但并非总是如此!)。此外,在帮助apt-get update
之前,它似乎连续运行了两次apt-get install
。不过,我对最后两句话一点也不肯定。
知道会发生什么吗?apt-get 中是否有某些东西可以缓存时间戳,然后期望它是最新的?
答案1
这是您在 Docker 镜像中更常见到的一个问题,因为您访问的存储库经常发生变化,但基础镜像(及其缓存的元数据)却不会发生变化。
apt-get clean && apt-get update
在安装软件包之前尝试运行。