簡體   English   中英

apt-get update' 返回一個非零代碼:100

[英]apt-get update' returned a non-zero code: 100

我正在嘗試從我的 docker 文件創建一個 docker 圖像,該文件具有以下內容:

FROM ubuntu:14.04.4
RUN echo 'deb http://private-repo-1.hortonworks.com/HDP/ubuntu14/2.x/updates/2.4.2.0 HDP main' >> /etc/apt/sources.list.d/HDP.list
RUN echo 'deb http://private-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/repos/ubuntu14 HDP-UTILS main'  >> /etc/apt/sources.list.d/HDP.list
RUN echo 'deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/azurecore/ trusty main' >> /etc/apt/sources.list.d/azure-public-trusty.list
RUN gpg --keyserver pgp.mit.edu --recv-keys B9733A7A07513CAD
RUN gpg -a --export 07513CAD | apt-key add -
RUN gpg --keyserver pgp.mit.edu --recv-keys B02C46DF417A0893
RUN gpg -a --export 417A0893 | apt-key add -
RUN apt-get update

失敗並出現以下錯誤:

root@sbd-docker:~/ubuntu# docker build -t hdinsight .
Sending build context to Docker daemon 3.072 kB
Step 1 : FROM ubuntu:14.04.4
 ---> 8f1bd21bd25c
Step 2 : RUN echo 'deb http://private-repo-1.hortonworks.com/HDP/ubuntu14/2.x/updates/2.4.2.0 HDP main' >> /etc/apt/sources.list.d/HDP.list
 ---> Using cache
 ---> bc23070c0b18
Step 3 : RUN echo 'deb http://private-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/repos/ubuntu14 HDP-UTILS main'  >> /etc/apt/sources.list.d/HDP.list
 ---> Using cache
 ---> e45c32975e28
Step 4 : RUN echo 'deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/azurecore/ trusty main' >> /etc/apt/sources.list.d/azure-public-trusty.list
 ---> Using cache
 ---> 1659cdcab06e
Step 5 : RUN gpg --keyserver pgp.mit.edu --recv-keys B9733A7A07513CAD
 ---> Using cache
 ---> ca73b2bfcd21
Step 6 : RUN gpg -a --export 07513CAD | apt-key add -
  ---> Using cache
  ---> 95596ad10bc9
Step 7 : RUN gpg --keyserver pgp.mit.edu --recv-keys B02C46DF417A0893
 ---> Using cache
 ---> f497deeef5b5
Step 8 : RUN gpg -a --export 417A0893 | apt-key add -
 ---> Using cache
 ---> d01dbe7fa02e
Step 9 : RUN apt-get update
 ---> Running in 89d75799982f
E: The method driver /usr/lib/apt/methods/https could not be found.
The command '/bin/sh -c apt-get update' returned a non-zero code: 100
root@sbd-docker:~/ubuntu#

我在Ubuntu 14.04.4上運行它。

我嘗試重新啟動 docker,清理所有 docker 圖像,安裝apt-transport-https ,但沒有任何效果。

我不知道這里有什么問題。

因為你有一個 https 來源。 在執行更新之前安裝apt-transport-https

FROM ubuntu:14.04.4
RUN apt-get update && apt-get install -y apt-transport-https
RUN echo 'deb http://private-repo-1.hortonworks.com/HDP/ubuntu14/2.x/updates/2.4.2.0 HDP main' >> /etc/apt/sources.list.d/HDP.list
RUN echo 'deb http://private-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/repos/ubuntu14 HDP-UTILS main'  >> /etc/apt/sources.list.d/HDP.list
RUN echo 'deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/azurecore/ trusty main' >> /etc/apt/sources.list.d/azure-public-trusty.list

....
Rest of your Dockerfile.

我不得不用docker system prune清理我的磁盤,我這樣做是因為我在另一個SO 答案中讀到了它

只是添加它以防它對其他人有用。 在我的情況下,我必須Dockerfile添加到Dockerfile

RUN apt-get -y update

我遇到了同樣的問題,通過這個答案解決了它:

https://superuser.com/questions/1423486/issue-with-fetching-http-deb-debian-org-debian-dists-jessie-updates-inrelease/1424377

您可能想添加這一行

RUN printf "deb http://archive.debian.org/debian/ jessie main\ndeb-src http://archive.debian.org/debian/ jessie main\ndeb http://security.debian.org jessie/updates main\ndeb-src http://security.debian.org jessie/updates main" > /etc/apt/sources.list

在 Dockerfile 中的任何apt-get命令之前。

在我的情況下,錯誤是

存儲庫“http://internalrepo/repos/internalrepo-name/1 Release”沒有發布文件。

在 deb 包名稱之前添加 [trusted=yes] 修復了該問題。

IE

deb [trusted=yes] http://internalrepo/repos/internalrepo-name/1 /

有同樣的問題,使用以下命令修復它

運行 apt -y 更新; 退出 0

我遇到了同樣的問題,因為我的DockerfileFROM行指的是 Ubuntu 20.10,其支持於 2021 年 7 月結束:

FROM ubuntu:groovy-20210416

將此更新為:

FROM ubuntu:focal-20211006

為我解決了這個問題。

檢查您的時間設置。
它們可能與目標 http|https 存儲庫不同步。

根據@Jonathan Morales Vélez 的回答(磁盤空間不足),以下命令幫助我回收磁盤空間:

docker image prune -f

之后 Docker 映像構建恢復工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM