2015-09-22 39 views
1

我正在嘗試在Docker ubuntu:trusty容器中安裝supervisor。這是一個小例子Dockerfile演示我的問題:當我嘗試建立從這個Dockerfile圖像無法在Docker容器上安裝Supervisor ubuntu:trusty

FROM ubuntu:trusty 
MAINTAINER someone <[email protected]> 

# Get supervisor: 
RUN apt-get update && apt-get install -y supervisor 

,我得到這樣的輸出:

$ docker build -t example . 
Sending build context to Docker daemon 71.17 kB 
Step 0 : FROM ubuntu:trusty 
---> 91e54dfb1179 
Step 1 : MAINTAINER someone <[email protected]> 
---> Running in fc8d787ecfd5 
---> 0619f1a6c1f1 
Removing intermediate container fc8d787ecfd5 
Step 2 : RUN apt-get update && apt-get install -y supervisor 
---> Running in 01285d3a1d4b 
Ign http://archive.ubuntu.com trusty InRelease 
Ign http://archive.ubuntu.com trusty-updates InRelease 
Ign http://archive.ubuntu.com trusty-security InRelease 
Hit http://archive.ubuntu.com trusty Release.gpg 
Get:1 http://archive.ubuntu.com trusty-updates Release.gpg [933 B] 
Get:2 http://archive.ubuntu.com trusty-security Release.gpg [933 B] 
Get:3 http://archive.ubuntu.com trusty Release [11.9 kB] 
Get:4 http://archive.ubuntu.com trusty-updates Release [63.5 kB] 
Ign http://archive.ubuntu.com trusty Release 
Get:5 http://archive.ubuntu.com trusty-security Release [63.5 kB] 
Get:6 http://archive.ubuntu.com trusty/main Sources [1335 kB] 
Get:7 http://archive.ubuntu.com trusty/restricted Sources [5335 B] 
Get:8 http://archive.ubuntu.com trusty/universe Sources [7926 kB] 
Ign http://archive.ubuntu.com trusty/main amd64 Packages/DiffIndex 
Ign http://archive.ubuntu.com trusty/restricted amd64 Packages/DiffIndex 
Get:9 http://archive.ubuntu.com trusty/universe amd64 Packages [7589 kB] 
Get:10 http://archive.ubuntu.com trusty-updates/main Sources [294 kB] 
Get:11 http://archive.ubuntu.com trusty-updates/restricted Sources [4521 B] 
Get:12 http://archive.ubuntu.com trusty-updates/universe Sources [171 kB] 
Get:13 http://archive.ubuntu.com trusty-updates/main amd64 Packages [779 kB] 
Get:14 http://archive.ubuntu.com trusty-updates/restricted amd64 Packages [22.7 kB] 
Get:15 http://archive.ubuntu.com trusty-updates/universe amd64 Packages [407 kB] 
Get:16 http://archive.ubuntu.com trusty-security/main Sources [119 kB] 
Get:17 http://archive.ubuntu.com trusty-security/restricted Sources [1874 B] 
Get:18 http://archive.ubuntu.com trusty-security/universe Sources [34.8 kB] 
Get:19 http://archive.ubuntu.com trusty-security/main amd64 Packages [433 kB] 
Get:20 http://archive.ubuntu.com trusty-security/restricted amd64 Packages [14.8 kB] 
Get:21 http://archive.ubuntu.com trusty-security/universe amd64 Packages [150 kB] 
Get:22 http://archive.ubuntu.com trusty/main amd64 Packages [1743 kB] 
Get:23 http://archive.ubuntu.com trusty/restricted amd64 Packages [16.0 kB] 
Fetched 21.2 MB in 19s (1076 kB/s) 
Reading package lists... 
W: GPG error: http://archive.ubuntu.com trusty Release: The following signatures were invalid: BADSIG 40976EAF437D05B5 Ubuntu Archive Automatic Signing Key <[email protected]> 
Reading package lists... 
Building dependency tree... 
Reading state information... 
The following extra packages will be installed: 
    libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python 
    python-meld3 python-minimal python-pkg-resources python2.7 python2.7-minimal 
Suggested packages: 
    python-doc python-tk python-distribute python-distribute-doc python2.7-doc 
    binutils binfmt-support 
The following NEW packages will be installed: 
    libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python 
    python-meld3 python-minimal python-pkg-resources python2.7 python2.7-minimal 
    supervisor 
0 upgraded, 10 newly installed, 0 to remove and 12 not upgraded. 
Need to get 4141 kB of archives. 
After this operation, 17.9 MB of additional disk space will be used. 
WARNING: The following packages cannot be authenticated! 
    libpython-stdlib python-minimal python python-meld3 supervisor 
E: There are problems and -y was used without --force-yes 
The command '/bin/sh -c apt-get update && apt-get install -y supervisor' returned a non-zero code: 100 

似乎是有一些認證問題。有時我會收到其他錯誤消息。例如,在第二次運行中,這是我得到的輸出:

$ docker build -t example . 
Sending build context to Docker daemon 71.17 kB 
Step 0 : FROM ubuntu:trusty 
---> 91e54dfb1179 
Step 1 : MAINTAINER someone <[email protected]> 
---> Using cache 
---> 0619f1a6c1f1 
Step 2 : RUN apt-get update && apt-get install -y supervisor 
---> Running in 0d4362e9e578 
Ign http://archive.ubuntu.com trusty InRelease 
Ign http://archive.ubuntu.com trusty-updates InRelease 
Ign http://archive.ubuntu.com trusty-security InRelease 
Get:1 http://archive.ubuntu.com trusty Release.gpg [72 B] 
Get:2 http://archive.ubuntu.com trusty-updates Release.gpg [933 B] 
Get:3 http://archive.ubuntu.com trusty-security Release.gpg [933 B] 
Get:4 http://archive.ubuntu.com trusty Release [11.9 kB] 
Get:5 http://archive.ubuntu.com trusty-updates Release [63.5 kB] 
Err http://archive.ubuntu.com trusty Release 

Get:6 http://archive.ubuntu.com trusty-security Release [63.5 kB] 
Get:7 http://archive.ubuntu.com trusty-updates/main Sources [294 kB] 
Get:8 http://archive.ubuntu.com trusty-updates/restricted Sources [4521 B] 
Get:9 http://archive.ubuntu.com trusty-updates/universe Sources [171 kB] 
Get:10 http://archive.ubuntu.com trusty-updates/main amd64 Packages [779 kB] 
Get:11 http://archive.ubuntu.com trusty-updates/restricted amd64 Packages [22.7 kB] 
Get:12 http://archive.ubuntu.com trusty-updates/universe amd64 Packages [407 kB] 
Get:13 http://archive.ubuntu.com trusty-security/main Sources [119 kB] 
Get:14 http://archive.ubuntu.com trusty-security/restricted Sources [1874 B] 
Get:15 http://archive.ubuntu.com trusty-security/universe Sources [34.8 kB] 
Get:16 http://archive.ubuntu.com trusty-security/main amd64 Packages [433 kB] 
Get:17 http://archive.ubuntu.com trusty-security/restricted amd64 Packages [14.8 kB] 
Get:18 http://archive.ubuntu.com trusty-security/universe amd64 Packages [150 kB] 
Fetched 2571 kB in 7s (347 kB/s) 
Reading package lists... 
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: http://archive.ubuntu.com trusty Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 16126D3A3E5C1192 

W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty/Release 

W: Some index files failed to download. They have been ignored, or old ones used instead. 
Reading package lists... 
Building dependency tree... 
Reading state information... 
Package supervisor is not available, but is referred to by another package. 
This may mean that the package is missing, has been obsoleted, or 
is only available from another source 

E: Package 'supervisor' has no installation candidate 
The command '/bin/sh -c apt-get update && apt-get install -y supervisor' returned a non-zero code: 100 

輸出不同可能是由於Docker的緩存功能。

我以爲在Docker容器上安裝的東西應該可以在Ubuntu中使用:trusty。我在這裏錯過了什麼?

+1

你有沒有嘗試https://github.com/edgester/docker-gerrit/blob/master/Dockerfile#L15-L19? – VonC

+0

@VonC:謝謝你的回覆。我嘗試過,但我仍然得到某種身份驗證錯誤。這是我得到的錯誤行:W:GPG錯誤:http://archive.ubuntu.com trusty發佈:由於公鑰不可用,因此無法驗證以下簽名:NO_PUBKEY 16126D3A3E5C1192。我想知道問題出在我的機器上,而不是容器本身。 – real

+0

如果我將第一行更改爲「FROM ubuntu:wily」(Ubuntu 15.10),則一切正常。我希望與ubuntu 14.04一起工作,因爲它是一個長期的支持版本,但如果我沒有選擇,它就是這樣。 – real

回答

2

對於這種類型的錯誤

GPG error: archive.ubuntu.com 
trusty Release: The following signatures couldn't be verified because 
the public key is not available: NO_PUBKEY 16126D3A3E5C1192 

檢查 「How to fix GPG in updater」 和 「How do I fix the GPG error 「NO_PUBKEY」?

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 16126D3A3E5C1192 && \ 
sudo apt-get update 
+1

我通過信任一些外部密鑰來解決問題。這對我來說似乎是錯誤的安全理念。爲什麼Ubuntu 14.04默認不信任這個密鑰。爲什麼,例如,https://github.com/edgester/docker-gerrit/blob/master/Dockerfile#L15-L19不必這樣做?我以前可以在不信任外部密鑰的情況下安裝管理員。 – real

+0

@real我同意,這只是一個解決方法,讓你前進。我會監控https://github.com/docker/docker/issues/16307 – VonC