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
コマンドが成功することもあれば、何も変更せずに失敗することもあります。 seemsローカル開発マシンで実行すると常に成功しますが、EC2マシンで実行すると頻繁に失敗します(常にではありません!)。さらに、apt-get update
が役立つ前に、apt-get install
を2回続けて実行しているようです。けれども、私はそれらの最後の2つの文にまったく前向きではありません。
何が起こっているのでしょうか? apt-getにタイムスタンプをキャッシュしていて、それが最新であることを期待しているものはありますか?
アクセスしているリポジトリは頻繁に変更されますが、ベースイメージ(およびキャッシュされたメタデータ)は変更されないため、これはDockerイメージで頻繁に発生する問題です。
実行してみてくださいapt-get clean && apt-get update
パッケージをインストールする前。