在有关创建dockerized开发环境的blog post中,有一节给出了以下问题和第一段答案:
我在another question中读到, Artifact 可以是过程中创建的任何东西。通过阅读其他答案,似乎使用该术语的上下文很重要。
在使用Docker创建开发环境的情况下,构建 Artifact 是什么意思?
最佳答案
简而言之我会说:Environment + Compiled output = Artifact
。
也就是说,完整的环境,包括构建源所需的所有工具,依赖项等( image ),加上实际构建/编译的结果( runnables / libs ),后者存储在前者内部!
这样,万一发生崩溃/错误,无论问题出在什么版本的软件上,它都可以为您准备好所有调试好的东西。 *
*:我没有在上面的描述中包含源代码,但这也可能是更可取的。否则,由于我们所有人都使用版本控制,因此如有必要,可以在以后安装它。
神器与图片:
(注释中的注释)
“人工制品”仅是指所产生的事物的词;在这种情况下,开发软件时会产生副产品。因此,可运行对象/库是编译源代码时产生的 Artifact ,而镜像是整个“构建”步骤产生的 Artifact ,基本上是一个包含一个或多个其他 Artifact 的 Artifact !
当您开始使用自动构建,测试和部署管道(AKA Continuous Delivery)时,这更有意义。
注1:
这将是最终结果,因此您可以选择如何设置直至此为止的所有步骤(split-image approach等)。
注2:
我最近才开始与docker结合持续交付一起玩游戏,所以这些只是我最初的2美分:)
关于docker - 在dockerized开发环境中 “build artifact”是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42479620/