在关于创建码头化开发环境的blog post中,有一个部分提供了以下问题和第一段答案:
您想要什么类型的构建工件?
此示例中我想要的构建工件是一个正在运行的容器。 Compose或docker都是适合的工具 结束。在您的方案中,您可能更喜欢具有可分发的图像, 或者您可能更喜欢构建在主机上生成二进制文件 操作系统。
我在another question中读到工件可以是在流程中创建的任何内容。从阅读到其他答案,似乎使用该术语的上下文非常重要。
在使用Docker创建开发环境的上下文中,构建工件意味着什么?
答案 0 :(得分:9)
Environment + Compiled output = Artifact
。即完整环境,包括构建源(图像)所需的所有工具,依赖项等,+实际构建/编译结果( runnables / libs < / strong>),后者存储在前者内部!
这样一来,在发生崩溃/错误的情况下,一切都在那里,无论什么时候尘土飞扬,都可以调试。发生问题的旧版软件。 *
*:我在上面的描述中没有包含来源,但这也可能更合适。否则,由于我们都使用版本控制,因此可以在必要时安装它。
(来自评论的注释)
&#34;工件&#34;只是生成某事的词;在这种情况下,开发软件时的副产品。因此runnables / libs是编译源代码时产生的工件,而图像是整个&#34; build&#34; -step产生的工件,基本上包含一个或多个其他工件的工件( s)!
当您开始使用自动构建,测试和放大时,这会更有意义。部署管道(AKA Continuous Delivery)。
注1:
这将是最终结果,因此您选择设置任何步骤直到此为止(split-image approach等)。
注2:
我刚刚开始玩码头与连续发货一起玩,所以这些只是我最初的两分钱:))
答案 1 :(得分:1)
就构建管道而言,Artifact是在构建期间生成的软件组件,存储在存储库中并最终部署到不同的环境中。
对于非dockerized Java应用程序,这通常是JAR / WAR。 对于dockerized应用程序,这通常是包含JAR / WAR的图像。