我刚刚使用 RUN git clone ...
指令更改了 Dockerfile,以便它现在能够注意到 Git 存储库中的更改并相应地重建。这需要绕过 Docker 的正常缓存机制。
我选择了一种机制,它引入了一个 ARG,该 ARG 保存存储库头部的 Git 提交哈希,如建议的 here。我还注意到一种替代机制,它通过 ADD
指令复制类似版本的“哈希”,如建议的 here。
同一个 Dockerfile 还通过 RUN apt-get install -y ...
安装了多个 (Debian) 软件包。因此我想知道:如果任何软件包收到(安全)更新,是否有类似的解决方法(部分)重建 Docker 映像?基于前面提到的基于 ADD
的解决方法,我可以例如想象一下基于 Web 服务的东西,它接收由包名称/版本号组成的键/值对,并在挂起(安全)更新的情况下返回一个合格的“哈希”。是否存在此类特定组件,或者是否存在涵盖此类用例的更通用的最佳实践?