【问题标题】:Can't install supervisor on a Docker container ubuntu:trusty无法在 Docker 容器 ubuntu:trusty 上安装主管
【发布时间】:2015-09-22 11:58:05
【问题描述】:

我正在尝试在 Docker ubuntu:trusty 容器中安装主管。这是一个演示我的问题的小示例 Dockerfile:

FROM ubuntu:trusty
MAINTAINER someone <someone@somewhere.com>

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

当我尝试从此 Dockerfile 构建映像时,我得到以下输出:

$ docker build -t example .
Sending build context to Docker daemon 71.17 kB
Step 0 : FROM ubuntu:trusty
 ---> 91e54dfb1179
Step 1 : MAINTAINER someone <someone@somewhere.com>
 ---> 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 <ftpmaster@ubuntu.com>
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 <someone@somewhere.com>
 ---> 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 开箱即用。我在这里错过了什么?

【问题讨论】:

  • @VonC:感谢您的回复。我试过了,但我仍然遇到某种身份验证错误。这是我得到的错误行:W:GPG 错误:archive.ubuntu.comtrusty 发布:由于公钥不可用,无法验证以下签名:NO_PUBKEY 16126D3A3E5C1192。我想知道问题是否出在我的机器上,而不是容器本身。
  • 如果我将第一行更改为“FROM ubuntu:wily”(Ubuntu 15.10),一切正常。我希望使用 ubuntu 14.04,因为它是一个长期支持版本,但如果我别无选择,那就是。
  • 你能不能把你的 from 改成 from ubuntu:14.04 看看能不能成立。我相信这可能是一个标签错误,因为我刚刚在 Docker 构建中使用了主管。
  • FROM ubuntu:14.04 对我不起作用。同样的错误。

标签: docker ubuntu supervisord apt-get


【解决方案1】:

对于这种错误

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

【讨论】:

  • 我在通过信任某个外部密钥来修复问题时遇到问题。对我来说,这似乎是错误的安全理念。为什么 Ubuntu 14.04 默认不信任此密钥。例如,为什么github.com/edgester/docker-gerrit/blob/master/… 不必这样做?我过去可以在不信任外部密钥的情况下安装主管。
  • @real 我同意,这只是一种解决方法,让您继续前进。我会监控github.com/docker/docker/issues/16307
猜你喜欢
  • 1970-01-01
  • 2021-07-21
  • 2020-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多