Docker Debian安装失败

时间:2015-12-08 17:06:31

标签: docker

我有一个可以工作的Dockerfile,但是如果我向apt-get install命令添加任何新的依赖项,它就会失败。例如,这有效:

FROM debian:stable

RUN apt-get update

RUN apt-get install -y \
    python \
    ...
    apache2

但如果我试试这个,就会失败:

FROM debian:stable

RUN apt-get update

RUN apt-get install -y \
    python \
    ...
    apache2
    python-mysqldb

我可以将python-mysqldb替换为其他任何内容,git-core,例如,它仍然会失败并显示相同的错误消息:

Unable to correct missing packages.
E: Failed to fetch http://security.debian.org/pool/updates/main/l/linux/linux-libc-dev_3.16.7-ckt11-1+deb8u5_amd64.deb  404  Not Found [IP: 149.20.20.6 80]

E: Aborting install.

有关添加新依赖项的原因的任何想法都会导致失败以及如何修复它?

1 个答案:

答案 0 :(得分:3)

我发现您需要加入更新&将命令安装到同一个RUN块中。

例如:

RUN apt-get update \
 && apt-get install -y \
    python \
    ...
    apache2 \
    python-mysqldb

根据描述问题的this post

  

默认情况下,Docker会缓存您的命令以减少构建时间   图片。除非在这些命令之前有任何变化(或者在此之前)   同一行)。

与此同时,我注意到AWS examples将它们分开,就像你拥有它们一样。所以我不知道它是否在那里有所不同。也许他们默认禁用缓存。