api-get Nhận lỗi khi đọc từ máy chủ trong Docker


14

Tôi đang chạy lệnh sau trong 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

Nó chạy, nhưng thất bại ở giữa:

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]

Và do đó, toàn bộ hoạt động không thành công với lỗi

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?

Tôi đang chạy nó như là một phần của bản dựng Docker. Dockerfile của tôi đọc

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

và tôi đang chạy docker build -t my-base:latest .

Các apt-getlệnh thành công một số thời điểm đó, và không một số thời gian mà không cần tôi phải thay đổi bất cứ điều gì. Nó dường như luôn thành công khi tôi chạy nó trên máy phát triển cục bộ của mình nhưng thường xuyên bị lỗi (nhưng không phải lúc nào cũng vậy!) Khi tôi chạy nó trên máy EC2. Hơn nữa, nó có vẻ như chạy apt-get updatehai lần liên tiếp trước khi apt-get installgiúp đỡ. Tôi hoàn toàn không tích cực trong hai câu cuối.

Bất kỳ ý tưởng những gì có thể xảy ra? Có thể có một cái gì đó trong apt-get đó là lưu trữ dấu thời gian và sau đó mong đợi nó là hiện tại?

Câu trả lời:


22

Đây là vấn đề bạn sẽ thấy thường xuyên hơn với hình ảnh Docker vì các kho lưu trữ bạn đang truy cập thay đổi thường xuyên nhưng hình ảnh cơ sở (và đó là siêu dữ liệu được lưu trong bộ nhớ cache) thì không.

Hãy thử chạy apt-get clean && apt-get updatetrước khi bạn cài đặt gói.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.