为构建任务添加额外的docker容器是一个好习惯吗?

时间:2016-10-18 11:29:36

标签: docker

我有一个简单的网络应用,nginx作为网络服务器。我使用grunt(节点模块)来准备我的资产以进行生产(缩小等)。 现在我想知道是否应该在自己的容器中运行构建任务,或者是否一个容器就足够了。

哪种方法最好,为什么?

2 个答案:

答案 0 :(得分:5)

为构建和完成的应用程序提供单独的图像是一个很好的做法 - 这意味着您的最终应用程序图像是干净的,并且具有最小的功能集,只有您运行应用程序所需的内容。这使得较小的图像(更重要的是)具有较小的攻击面。这是一个很好的写作 - 它被称为the Docker Builder pattern

或者,拥有包含应用程序和构建工具的单个映像的好处是可以减少开发期间的管理开销 - 您不必将构建链接在一起或管理多个映像的多个版本。但是,使用更具潜力的漏洞的最终应用程序的成本可能不值得。

答案 1 :(得分:3)

一个容器就足够了。在单个计算机上运行的容器共享相同的操作系统内核。因此,如果要在多个容器上运行相同的构建,则维护可能会出现问题。优选地,您可以在任何时候生成另一个图像。虽然建议在每次成功构建后保留快照。