在 Docker 中,如何防止基于 apt 的 Dockerfiles 将来因程序更新版本而停止工作?

在 Docker 中,如何防止基于 apt 的 Dockerfiles 将来因程序更新版本而停止工作?

我正在为几项服务制作自己的 Dockerfile,我注意到它们中的大多数apt install在它们的RUN文件中都有一个命令,因此每次我重新安装映像时,它都会升级到最新版本。

我担心这种方法迟早会导致某些程序失败,因为我使用预先制作的配置文件对它们进行配置,然后将它们挂载到容器中,而使用新版本时,某些偏好设置可能会被弃用、过时,或者只是使容器及其程序停止服务。

我考虑过在 apt 等中指定软件包版本apt install apache2=x.y.ubuntu-z,但是 Ubuntu 存储库只存储了一个或两个版本(再次,最新版本)。

有什么好方法可以实现这一点,以便我可以完全确定正在安装的程序版本,然后在安全的测试环境中定期升级它们?我真的不想“相信”只要我安装而apache2不是apache3等等,一切都会长期按预期运行。

提前致谢。

答案1

最近我发现 Debian 制作了他们的存储库快照因此任何 Debian 发行版都能够连接、使用这些源进行更新以及下载过去任何日期的特定版本的二进制文件。

我猜这也应该适用于基于 Debian 的容器(这是我的情况),所以我将把它作为临时回复发布,至少直到我测试这是否真的有效(或者当然有人发布更好的解决方案)。

不管怎么说,还是要谢谢你。

相关内容