在关于创建一个dockerized开发环境的blog post中,有一个部分提供了以下问题和第一段答案:
What type of build artifacts do you want?
The build artifact I wanted in this example was a running container.
Either Compose or docker would have been appropriate tools to that
end. In your scenario you might prefer to have a distributable image,
or you might prefer that the build produce a binary on your host
operating system.
我在another question读到一个工件可以是在一个过程中创建的任何东西.通过阅读其他答案,似乎使用该术语的上下文非常重要.
在使用Docker创建开发环境的上下文中,构建工件意味着什么?
也就是说,完整的环境包括构建源(图像)所需的所有工具,依赖项等,实际构建/编译的结果(runnables / libs),后者存储在前者中!
这样,在发生崩溃/错误的情况下,一切都在那里,无论什么时候尘土飞扬,都可以调试.发生问题的旧版软件. *
*:我在上面的描述中没有包含来源,但这也是可取的.否则,由于我们都使用版本控制,因此可以在必要时安装它.
神器与图像:
(注释中注释)
“神器”仅仅是生成某些东西的词;在这种情况下,开发软件时的副产品.因此,runnables / libs是编译源代码时产生的工件,而图像是整个“构建”步骤产生的工件,基本上是包含一个或多个其他工件的工件!
当您开始使用自动构建,测试和放大时,这会更有意义.部署管道(AKA Continuous Delivery).
注1:
这将是最终结果,因此您选择设置任何步骤直到这一点由您决定(split-image approach等).
笔记2:
我刚刚开始玩docker和持续交付,所以这些只是我最初的两分钱:)