Docker Debian安装失败



我有一个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.

关于为什么添加新的依赖项会导致失败以及如何修复它,有什么想法吗?

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

例如:

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

根据这篇描述问题的帖子

默认情况下,Docker会缓存您的命令,以减少构建时间图像。除非在发出此类命令之前(或同一行)。

同时,我注意到AWS示例将它们分开,正如您所看到的那样。所以我不知道那里的效果是否不同。也许他们默认情况下会禁用缓存。

最新更新