Dockerfile预处理器,包含variables和包含文件

我一直在使用泊坞窗的一些我的应用程序。 我已经到了关于十几个docker文件的地步了。 通常我必须做出相同的改变,或者在一些dockerfiles中包含一些东西 – 这意味着我必须在多个地方进行相同的更改。

可能解决这个问题的方法是使用支持包含文件和variables的预处理器。 这样,我可以在同一个文件中有共同的东西(例如,包括monit和supervisor的一堆东西),并将这些文件包含在我的Dockerfile中。

Docker构build本身不包含和可变replace,所以也许预处理器将解决这个问题? 我知道,CSS有一堆预处理器,那么是否有一个通用的预处理器或将采取一个YAML或JSON文件,并写下一些Docker将理解的东西?

这实际上是Docker GitHub中的一个讨论话题 。 最后的评论几乎总结为:“nope,Dockerfile不是,也不应该是一个脚本语言”。

但是你描述这种情况的方式在我看来就像是你在构build之后应该做的事情,当你初始化你创build的映像的容器时(也许使用带有很好shell脚本的卷或环境variables)。 你有没有尝试过这种方法?