虽然我大部分时间都在开发Java应用程序并且只使用Maven,所以我的构建应该是可重现的(至少Maven说的是这样)。
但是你说你正在编译一个C ++程序或者更多涉及的东西,你应该在docker里面构建吗? 或者理想情况下使用流浪者或其他技术来制作可复制的构建。
如何使用docker管理可重现的构建?
答案 0 :(得分:6)
你可以,但不是在你的最终图像中,因为这意味着一个比必要更大的图像:它将包括所有的编译工具,而不是仅限于你需要执行结果二进制。
您可以在" How do I build a Docker image for a Ruby project without build tools?"
中看到替代方案最终图像包括已编译的二进制文件和执行环境。
答案 1 :(得分:1)
我想发布一个答案,因为要建立在VonC的答案上。实际上我刚刚接受了Redhat Openshift培训,他们使用了一个名为Source to Image s2i的工具,它使用docker来创建docker图像。实际上,这种策略非常适合管理私有(或公共)云,其中您的构建可能在不同的机器上编译,但您需要保持构建环境的一致性。