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 

例如,我可以使用其他任何东西replacepython-mysqldb ,并且它仍然会失败,并显示相同的错误信息:

 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. 

任何想法为什么添加一个新的依赖导致失败和如何解决它?

我发现你需要将update&install命令join到同一个RUN块中。

例如:

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

根据这个post来描述这个问题

默认情况下,Dockercaching您的命令,以减less花费在构build图像上的时间。 除非在这些命令(或在同一行)之前有任何改变。

同时,我注意到AWS示例将它们分开,就像您拥有它们一样。 所以我不知道如果它在那里工作不同。 也许他们默认禁用caching。